我有一个使用模板呈现行的表。应用的模板取决于底层的行视图模型状态,可以是“编辑”或“视图”。所以我需要在每个特定情况下使用“编辑模板”或“视图模板”模板。
我希望视图模型不知道它的表示,所以我不使用一些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 元素之间有内存绑定,所以渲染后可能不需要这些注释......有想法吗?
谢谢!