javascript - 有条件地渲染容器

标签 javascript html knockout.js knockout-2.0

是否可以使用 knockout.js 根据条件为模板呈现容器?

这不起作用,但显示了我想做的事情:

<div data-bind="foreach: items">
 <!-- ko if: $data.startContainer -->
 <div class="container">
 <!-- ko -->

 <div data-bind="html: $data.contentElement"></div>

 <!-- ko if: $data.endContainer -->
 </div>
 <!-- ko -->
</div>

最佳答案

在 knockout.js github 站点上发现了一个线程,该线程表明这 不可能使用 native 模板 模型: https://github.com/SteveSanderson/knockout/issues/307

显然,结束注释被理解为未关闭的 div 标记的内部。

我寄希望于动态模板,但也如 fiddle 所示失败了。

http://jsfiddle.net/XbdGs/3/

<script type="text/html" id="withContainer">
     <div class="container">
         <!-- ko template: 'withoutContainer' -->
         <!-- /ko -->
     </div>
</script>

由此我得出结论,您可以尝试 3 foreachs 解决方案,使用 Posthuma 建议或回退到另一个模板引擎,如 jquery.tmpl 或 Underscore,如 knockout 文档中所述。

http://knockoutjs.com/documentation/template-binding.html

关于javascript - 有条件地渲染容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16426070/

相关文章:

javascript - Grunt 将 Angular ui 路由器模板连接到一个文件中

javascript - CSS :before and :after pseudo elements not displaying after slideToggle(); fires in all browsers but Firefox

javascript - textarea 模仿效果不佳。任何替代品?

html - 当字体都设置为em时,如何设置div的大小?

javascript - 将所选值与 DevExtreme 和 KnockOut 绑定(bind)时出错

javascript - knockout ,当我尝试从其中删除一项(如果其中包含多个项目)时,集合属性变为空?

javascript - 多用户 Facebook 共享器

javascript - React 组件不会在状态更改时重新渲染

javascript - 如何使预标记内的内部元素右对齐

c# - 文件上传到 Windows Azure Blob