knockout.jsでコンボボックスのオプションを無効にしようとしています。それがうまく機能optionsCaptionを使用するとオプションが無効にならない
<select data-bind=" options: myItems, optionsText: 'name', optionsValue: 'id',
optionsAfterRender: setOptionDisable"> </select>
var vm = { myItems: [{ name: 'Item 1', id: 1, disable: ko.observable(false) }, { name: 'Item 3', id: 3, disable: ko.observable(true) }, { name: 'Item 4', id: 4, disable: ko.observable(false) }], setOptionDisable: function(option, item) { ko.applyBindingsToNode(option, { disable: item.disable }, item); } }; ko.applyBindings(vm);
:knockout documentationでは1例もあります。 HereはJSFiddleです。
ただし、optionsCaption
を追加すると、バインディングは機能しません。コンボボックスにはキャプションのみが表示されます。 HereはcaptionsOptionを持つJS Fiddleです。
何が起こっていますか?
ありがとう:
あなたが
undefined
のdisable
プロパティにバインドしようとしているからノックアウトを防止するための余分なチェックが必要になります。それは完璧に働いた。 – rubenfa