我有一个表格,其中使用模板呈现行。应用的模板取决于基础行视图模型状态,可以是“编辑”或“视图”。因此,我需要在每个特定情况下使用“编辑模板”或“视图模板”模板 我希望视图模型不知道它的表示,所以我不使用一些 myViewModel.getTemplateName()函数。此外,将来可能会有多个2个模板 所以我决定用这样的html代码控制模板:
<table>
<thead>..</thead>
<tbody>
<!-- ko foreach: dicts -->
<!-- ko template: { name: function(){ return (state() == "view")? 'row-etpd-view-template' : 'row-etpd-edit-template' } } -->
<!-- /ko -->
<!-- /ko -->
</tbody>
</table>
很明显,它呈现为:
<!-- ko template: { name: function(){ return (state() == "view")? 'row-etpd-view-template' : 'row-etpd-edit-template' } } -->
<tr>...</tr>
每个行。我想避免这么多的额外线以及其他内联KO使用的情况。有办法吗?我想KO在视图模型和DOM元素之间有内存中的绑定,所以在渲染后它可能不需要这些评论......有想法吗?
谢谢!
答案 0 :(得分:1)
处理此问题的一个好方法是使用template
的foreach
选项。
<tbody>
<!-- ko template: { foreach: dicts, name: function(item) { return (item.state() == "view")? 'row-etpd-view-template' : 'row-etpd-edit-template' } } -->
<!-- /ko -->
</tbody>