首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Knockout.js purify html

Knockout.js purify html
EN

Stack Overflow用户
提问于 2013-03-21 00:02:42
回答 1查看 109关注 0票数 0

我有一个表,其中行是使用模板呈现的。应用模板取决于底层行视图模型状态,该模型状态可以是“编辑”或“视图”。因此,我需要使用“编辑-模板”或“视图模板”模板在每个特定的情况。

我希望视图模型不知道它的表示,所以我不使用myViewModel.getTemplateName()函数。另外,将来可能会有两个以上的模板。

因此,我决定在html代码中控制模板,如下所示:

代码语言:javascript
复制
<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>

显然,它呈现为:

代码语言:javascript
复制
<!-- ko template: { name: function(){ return (state() == "view")? 'row-etpd-view-template' : 'row-etpd-edit-template' } } -->
<tr>...</tr>

对于,每一行。我想避免这么多额外的行,以及在其他情况下的内联KO使用。有办法吗?我想KO在视图模型和DOM元素之间有内存绑定,所以在呈现后它可能不需要这些注释.有主意吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-21 01:49:11

处理此问题的一个好方法是使用foreach选项template

代码语言:javascript
复制
<tbody>
    <!-- ko template: { foreach: dicts, name: function(item) { return (item.state() == "view")? 'row-etpd-view-template' : 'row-etpd-edit-template' } } -->
    <!-- /ko -->
</tbody>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15537104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档