0

以下にリンクされているコードでは、ページの読み込み時に表示されるオプションは常に「X」です。

値を「z」に設定しようとする 2 つの異なる方法を使用していますが、設定されません。

私は何を間違っていますか?これを「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 に答える