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