在下面链接的代码中,页面加载时显示的选项始终为“X”。
我使用两种不同的方法尝试将值设置为“z”,但它永远不会被设置。
我做错了什么?如何将其设置为“z”?
HTML:
<select id="TestList" data-bind='options: Options, value: SelectedOption'></select>
<br />
<select id="TestList" data-bind='options: Options, selectedOptions: SelectedOption2'></select>
使用Javascript:
var TestViewModel = function () {
var self = this;
self.Options = ko.observableArray(['x', 'y', 'z']);
self.SelectedOption = ko.observable(self.Options[2]);
self.SelectedOption2 = ko.observableArray([self.Options[2]]);
};
$(document).ready(function () {
ko.applyBindings(new TestViewModel());
});
答案 0 :(得分:3)
您的options
绑定没有任何问题,但您如何在SelectedOption
和SelectedOption2
中设置初始值。
因为Options
是ko.observableArray
,您需要通过将self.Options()
称为函数来获取其下层数组。
所以你错过了代码中的()
,正确的版本应该是这样的:
self.SelectedOption = ko.observable(self.Options()[2]);
self.SelectedOption2 = ko.observableArray([self.Options()[2]]);
演示JSFiddle。