我的代碼中選定值的跨度似乎並未填充到最初。誰能告訴我爲什麼這是?Knockout - 設置選擇的初始值
小提琴:http://jsfiddle.net/vVLdQ/
我的HTML:
<div>
Disable:
<span data-bind="text: options[1].text"></span><input type="checkbox" data-bind="checked: options[1].disable" />
<span data-bind="text: options[2].text"></span><input type="checkbox" data-bind="checked: options[2].disable" />
<span data-bind="text: options[3].text"></span><input type="checkbox" data-bind="checked: options[3].disable" />
</div>
<div>
<select data-bind="value: selectedValue">
<option data-bind="value: options[0].text, text: options[0].text"></option>
<option data-bind="value: options[1].text, text: options[1].text, disable: options[1].disable"></option>
<option data-bind="value: options[2].text, text: options[2].text, disable: options[2].disable"></option>
<option data-bind="value: options[3].text, text: options[3].text, disable: options[3].disable"></option>
</select>
</div>
<span data-bind="text: selectedValue"></span>
我的javascript:
var selectModel;
function OptionModel(text) {
var me = this;
me.text = text;
me.disable = ko.observable(false);
me.disable.subscribe(function(disableVal) {
if (disableVal && selectModel.selectedValue() == me.text) {
selectModel.selectedValue('-- Select --');
}
});
}
var options = [
new OptionModel('-- Select --'),
new OptionModel('a'),
new OptionModel('b'),
new OptionModel('c')
];
selectModel = {
options: options,
selectedValue: ko.observable(options[0].text)
};
ko.applyBindings(selectModel);
爲什麼不使用[options](http://knockoutjs.com/documentation/options-binding.html)綁定來填充_select_? – gbs
如果您可以告訴我一種通過綁定禁用選項的方法,我很樂意! –
確實......我沒有看到使用選項的方法。這是另一種使用_foreach_替代的解決方案:[fiddle](http://jsfiddle.net/gbos/vVLdQ/5/) – gbs