我想使用虚拟元素来遍历集合,但前提是集合存在于视图模型中。我最初的猜测是添加一个 virtual if 后跟一个 virtual foreach ,如下所示:
<!-- ko if: items -->
<!-- ko foreach: items -->
<span data-bind="text: $data"></span>
<!-- /ko -->
<!-- /ko -->
使用给定的视图模型,如果集合存在,我的视图模型会正确绑定。但是由于某种原因,如果没有,KnockoutJS 会抛出一个异常,说我的集合没有定义。这是有道理的,除非我取出 foreach 语句。如果集合不存在,则 if 语句作为例外运行并且不绑定。我在http://jsfiddle.net/danlister/qhL7e/给出了一个更好的例子。