3

我尝试在<select>控件上使用模板,但它不起作用。这是不起作用的代码。

<select data-bind="template: { name: 'os-template-detail', foreach: operatingSystems },
        value: selectedOperatingSystem"></select>

但是当我使用普通绑定时,它工作得很好。

<select data-bind="options: operatingSystems,
        optionsText: function (item) {
            return item.Name
        },
        value: selectedOperatingSystem"></select>

所以,我想知道我是否做错了什么,或者这只是框架的限制。

更新 它们都显示操作系统列表。问题是当我在第一个组合框上选择一个操作系统时,它不会更新它的源,而第二个组合框会更新它的源。

4

1 回答 1

0

我认为您错过了指定operatingSystems列表和您os-template-detail应该如何组成option元素的方式。您绑定的问题是淘汰赛试图制作标签列表<select>而不是option标签。

这可能有效:

<select data-bind="foreach: operatingSystems">
    <option data-bind="template: {name: 'os-template-detail', data: $data}">
</select>

另外我建议使用Durandal's composition 而不是淘汰模板。这个链接描述了如何将你的淘汰赛与 durandal 结合起来。

于 2013-10-17T08:19:37.500 回答