Knockout.jsforeach:但仅当比较为真时
Knockout.js foreach: but only when comparison is true
如何通过使用比较来控制foreach忽略某些元素?
例如,我想要的是这样的东西:
<div data-bind="foreach: entry where (entry.number > 10)">
因此,我希望它在entry
中循环,但仅在当前entry
的number
值大于10时执行。
这样做可能吗?
目前knockout.js无法做到这一点,但这是一个有趣的功能。您应该提交一份错误报告/联系作者,以便考虑将来的版本。
方式1:
<div data-bind="foreach: entry">
<div data-bind="if: entry.number > 10"></div>
</div>
方式2:
编写一个自定义筛选方法,为您提供一个匹配条件的元素数组,并在foreach
中使用该方法。
试试这个:
<div data-bind="foreach: editingItem.columns">
<!-- ko if: Selected-->
<div data-bind="text: Name"></div>
<input type="text"/>
<!-- /ko -->
我认为最好使用内置的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);
然后,您可以像通常的
怎么样
<div data-bind="foreach: _.filter(entry(), function(item) { return item.number > 10;})">
使用undercore.js
您可以使用array.filter函数来过滤数组,不要忘记传递"this"
<div data-bind="foreach: yourArrayHere.filter(function(entry){return entry.number > 10}, this)">
相关文章:
- 比较从函数和生成的日期对象
- 如何使用 node.js 比较两个 json 数组
- jQuery自定义验证比较多个输入的序列
- 反向字符串比较
- 通过JSON&比较时间
- 将DOM节点值与字符串Javascript进行比较
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 递归深度比较
- 可以't在JavaScript中比较两个字符串
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 如何在moment.js中只比较日期
- 无法比较javascript变量
- 比较javascript中的浮动并更改最高浮动的颜色
- 使用javascript比较对象中的对象值和数组长度
- 如何将smarty变量与javascript变量进行比较
- 比较两个数组中的元素
- MongoDB-通过比较集合和对象的数组来返回现有字段的数组
- 比较和转换多个数组
- 如何在JavaScript中比较两个日期
- Knockout.jsforeach:但仅当比较为真时