如何通过使用比较来控制foreach忽略某些元素?
例如,我想要的东西是这样的:
<div data-bind="foreach: entry where (entry.number > 10)">所以我想要它做的是遍历entry,但只有在当前entry的number值大于10时才执行。
这有可能做到吗?
发布于 2012-01-15 19:45:15
目前knockout.js还不能做到这一点,但这是一个有趣的特性。您应该提交错误报告/联系作者以考虑将来的版本。
方式1:
<div data-bind="foreach: entry">
<div data-bind="if: entry.number > 10"></div>
</div>方式2:
编写一个自定义的filter方法,为您提供匹配条件的元素数组,并在foreach中使用此方法。
发布于 2012-04-05 10:24:40
试试这个:
<div data-bind="foreach: editingItem.columns">
<!-- ko if: Selected-->
<div data-bind="text: Name"></div>
<input type="text"/>
<!-- /ko -->发布于 2013-08-01 07:39:29
我认为使用内置的arrayFilter方法(参见http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html )会更好。
viewModel.filteredEntries = ko.computed(function() {
return ko.utils.arrayFilter(this.entries(), function(item) {
return item.number > 10;
});
}, viewModel);然后,您可以像往常一样将数据绑定到filteredEntries
https://stackoverflow.com/questions/8869264
复制相似问题