0

我正在使用 Knockout.js 2.1.0 和 jQuery 1.8。
我有 2 个嵌套的 foreach,这在 Chrome 和 Firefox 中运行良好,但在 IE 中却不行(在 8 和 9 中测试)。
在 IE 中,第二个嵌套 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 去除选择标签内的注释。对于您的方案,您可能需要考虑使用optionsCaptionwithoptions绑定。它看起来像: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绑定有用的地方。这是您使用的示例:http repeat: //jsfiddle.net/mbest/2ebDt/2/

于 2012-09-19T22:50:10.000 回答