根据需要Knockout.js表和下拉列表

时间:2013-05-10 19:34:13

标签: jquery knockout.js

我有一个淘汰表,在我的代码中显示一些数据,它看起来像这样。

<tbody data-bind="foreach: currentList">
    <tr>
        <td data-bind="text: someString, click: getDetails"></td>
        <td data-bind="text: someOtherString, click: getList"></td>
    </tr>
</tbody>

现在显示两列,在第二列中,我希望它最初显示为纯文本而不显示下拉列。我希望能够单击第二列中的字段,并使用我存储的数据列表动态创建下拉列表。我完全不知道如何使用jquery和knockout完成此任务,任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:1)

您可能在单元格中有更多内容,并使用“if”绑定在flag设置为true时显示:

<tbody data-bind="foreach: currentList">
    <tr>
        <td data-bind="text: someString, click: getDetails"></td>
        <td data-bind="text: someOtherString, click: getList">
            <div data-bind="if: showDropdown, template: { name: 'options-template', data: $root.options}">
            </div>
        </td>
    </tr>
</tbody>

因此getList函数只会将showDropdown属性设置为true。将单击事件绑定在单元格本身上可能不是一个好主意,因为此单元格内的每次单击都会触发此事件。

对于下拉选项,您可以在视图模型root上使用模板和数据作为options属性。这只是一个样本。