我有一个带有两个可观察数组的视图模型:
assignedItems
requiredDropPoints
在视图中我想做类似这样的事情
<ul>
<!-- ko foreach: assignedItems -->
<li>
<!-- display item-->
</li>
<!-- /ko -->
<!-- ko foreach: requiredDropPoints-->
<li>
<!-- display different item-->
</li>
<!-- /ko -->
</ul>
我可以在第一个ko if: expression
后执行foreach
并且它可以正常工作,但第二个foreach
将无效。有没有办法得到我需要的东西?
答案 0 :(得分:1)
您可以使用ko.computed包装集合并将列表项绑定到生成的计算结果:
composite = ko.computed(function() {
var result = [];
result.push.apply(result, assignedItems());
result.push.apply(result, requiredDropPoints());
return result;
});
<ul>
<!-- ko foreach: composite -->
<li>
<!-- display item-->
</li>
<!-- /ko -->
</ul>
在此合成中,您还可以过滤项目,映射项目或进行其他处理。