0

Knockout.js 2.1.0 と jQuery 1.8 を使用しています。
これは Chrome と Firefox ではうまく機能しますが、IE では機能しません (8 と 9 でテスト済み)。
IE では、2 番目にネストされた foreach の $data は、依然として親 foreach に対応しています。

これは私の見解です:

<!-- ko foreach: dropdowns -->
    <select>
        <option data-bind="text: title, value: title"></option>
        <!-- ko foreach: values -->
            <option data-bind="text: $data, value: $data"></option>
        <!-- /ko -->
    </select>
<!-- /ko -->

そして JavaScript: </p>

var viewModel = {
    dropdowns: [
        {
            title: "Dropdown 1",
            values: ["value 1.1", "value 1.2", "value 1.3"]
        },
            {
            title: "Dropdown 2",
            values: ["value 2.1", "value 2.2", "value 2.3"]
        },
        {
            title: "Dropdown 3",
            values: ["value 3.1", "value 3.2", "value 3.3"]
        }
    ]
}

ko.applyBindings(viewModel);

問題をテストするために jsfiddle を作成しました: http://jsfiddle.net/2ebDt/

それはバグですか、それとも何か間違っていますか?
ありがとう、

4

2 に答える 2

1

IE は select タグ内のコメントを取り除きます。あなたのシナリオではoptionsCaptionoptionsバインディングでの使用を検討することをお勧めします。次のようになります: http://jsfiddle.net/rniemeyer/2ebDt/1/

<!-- ko foreach: dropdowns -->
    <select data-bind="options: values, optionsCaption: title">
    </select>
<!-- /ko -->​

value唯一の違いは、キャプションに が設定されていないことtitleです。

于 2012-09-19T16:52:24.940 に答える
0

ここで私のrepeatバインディングが役に立ちます。使用例を次に示しますrepeat: http://jsfiddle.net/mbest/2ebDt/2/

于 2012-09-19T22:50:10.000 に答える