KnockoutJs在Select标签中设置选定选项不起作用

时间:2013-07-29 20:27:12

标签: knockout.js

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

1 个答案:

答案 0 :(得分:3)

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

因为Optionsko.observableArray,您需要通过将self.Options()称为函数来获取其下层数组。

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

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

演示JSFiddle