【发布时间】:2013-06-12 22:54:58
【问题描述】:
如果我试试这个:
<!-- 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 的手表控制台中看到的内容:
这是我要返回视图的虚拟机:
var vm = {
activate: activate,
data: observableData,
refresh: refresh,
};
我唯一改变的是将 foreach 从 div 移动到评论,它停止工作。
更新:如果我删除 <!-- /ko --> 结束标记,我不会收到错误消息,而我认为我应该收到 Cannot find closing comment tag to match。浏览器根本无法识别评论标签:/
【问题讨论】:
-
控制台有错误吗?
-
发布的代码应该可以工作。您的实际代码中有其他东西会导致您的问题。你有任何错误控制台吗?你能重现这个问题吗?也许在 JSFiddle 中?
-
不,在这两种情况下我都可以通过 chrome 中的手表控制台访问 data.cards
-
@nemesv 我试过小提琴,但它按预期工作:/
-
如果是IE,像这样转义foreach:
标签: knockout.js