淘汰赛:为什么评论标签不起作用?

时间:2013-05-30 20:38:47

标签: knockout.js

如果我试试这个:

<!-- ko foreach: data.cards -->
<div>
   SHOULD SEE MULTIPLE TIMES BUT ONLY SEE ONCE
</div>
<!-- /ko -->

我只得到一个没有数据的div。如果我这样做:

<div data-bind="foreach: data.cards">
   THIS IS SEEN MULTIPLE TIMES
</div>

它按预期工作 - 带有数据的多个div。为什么第一种方法不起作用?这特别奇怪,因为在另一个页面中,这种结构工作正常。

以下是我在Chrome控制台中看到的内容:

enter image description here

这是我要回到视图中的vm:

var vm = {
    activate: activate,
    data: observableData,
    refresh: refresh,
};

我改变的唯一一件事就是将foreach从div移到评论中,它就会停止工作。

更新:如果我删除了<!-- /ko -->结束标记,那么当我相信我应该获得Cannot find closing comment tag to match时,我不会收到错误。浏览器根本无法识别注释标记:/

1 个答案:

答案 0 :(得分:1)

我们的项目存在同样的问题,因为我们会压缩响应并删除注释。为避免在foreach中使用<div><span>,一种解决方法是定义自己的<ko>元素。如果这样做,您将需要包含IE8的以下脚本和较低的支持:

<!--[if lt IE 9]> 
 <script> 
    document.createElement("ko");
 </script>
<![endif]-->