0
我有一个敲除自定义绑定,称为groupedOptions
,它将select
列表的选项与optgroup
s绑定。这与标准选项绑定相同,但包含处理选项组的逻辑。自定义绑定后运行默认绑定
绑定在knockout v2.3下正常工作,但在升级到v3.3后停止工作。更新后,它将不再正确绑定值。
在看看源的值,在新版本绑定它有一些代码来告诉它的选项后,运行结合:
ko.bindingHandlers['value'] = {
'after': ['options', 'foreach'],
'init': function (element, valueAccessor, allBindings) {
...
此更改为:
ko.bindingHandlers['value'] = {
'after': ['options', 'foreach', 'groupedOptions'],
'init': function (element, valueAccessor, allBindings) {
...
将工作,但对我来说似乎有点哈克。有没有人有任何想法是最好的做法是做到这一点。
换句话说:如果我有一个自定义绑定需要在knockout中定义的绑定之前运行,我将如何在不编辑knockout源的情况下执行该绑定?
你可以发布你的'groupedOptions'绑定处理程序的代码吗? – nemesv
第二@nemesv。我已经回答了实际问题(“如何在默认绑定之前运行自定义绑定”),但是担心你有[XY-问题](http://meta.stackexchange.com/questions/66377/what-is-the -xy-problem),你应该可能正在修复/更改自定义绑定本身。 – Jeroen
groupedOptions绑定是一个复制和粘贴的选项,它是从onuralp这个问题的解决方案http://stackoverflow.com/questions/8972367/knockoutjs-select-with-option-group。 所以这确实是一个XY问题,当我为此搜索时,我已经看到人们或者直接编辑knockout绑定来支持分组,用foreach来做(这是cumersom,如果你有很多下拉菜单需要分组)。 我采取的方法的缺点是每个淘汰赛版本更新都要求重新实施,但我们没有重复使用恶意软件。 – Gunner