0

在下面链接的代码中,页面加载时显示的选项始终为“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());
    });

(代码:http: //jsfiddle.net/cleverpatrick/huqNd/2/

4

1 回答 1

3

您的绑定没有任何问题,但是您如何在和options中设置初始值。SelectedOptionSelectedOption2

因为Options是一个ko.observableArray你需要通过调用它作为函数来获取它的底层数组self.Options()

所以你错过了()你的代码,正确的版本应该是这样的:

self.SelectedOption = ko.observable(self.Options()[2]);
self.SelectedOption2 = ko.observableArray([self.Options()[2]]);

演示JSFiddle

于 2013-07-29T20:41:32.253 回答