Asp.net mvc 4 Durandaljs:如何过滤ko.array
我是durundaljs的新手 我想知道我如何过滤一个ko.Array 定义(['services/logger','data/data','functions/func'],函数(logger,data,func){ var vm={ 清单:ko.observableArray([]) }; 返回虚拟机; }); 我想筛选列表中的项目并将其显示在表中Asp.net mvc 4 Durandaljs:如何过滤ko.array,asp.net-mvc-4,single-page-application,durandal,Asp.net Mvc 4,Single Page Application,Durandal,我是durundaljs的新手 我想知道我如何过滤一个ko.Array 定义(['services/logger','data/data','functions/func'],函数(logger,data,func){ var vm={ 清单:ko.observableArray([]) }; 返回虚拟机; }); 我想筛选列表中的项目并将其显示在表中 感谢Knockout有一些实用功能,这些功能没有文档记录,但它们存在于库中,用于帮助过滤数组 以下是处理阵列的所有实用程序方法的完整列表: ko
感谢Knockout有一些实用功能,这些功能没有文档记录,但它们存在于库中,用于帮助过滤数组 以下是处理阵列的所有实用程序方法的完整列表:
ko.utils.arrayFilter
ko.utils.arrayFirst
ko.utils.arrayForEach
ko.utils.arrayIndexOf
ko.utils.arrayMap
ko.utils.arrayPushAll
ko.utils.arrayRemoveItem
ko.utils.compareArrays
ko.utils.unwrapObservable
Ryan Niemeyer写了一篇关于如何使用其中一些的好文章
方法1 下面是一个快速入门的示例:
var newList = ko.utils.arrayFilter(list(), function(item) {
return item.price > 10;
});
这将创建价格超过10的项目的新列表。
然后,您可以通过传递新列表来更改当前列表:
list(newList);
方法2
另一个选项是查找要删除的项目。假设您要删除价格超过10的所有项目:
var rList = ko.utils.arrayFilter(list(), function(item) {
return item.price > 10;
});
下一步,您可以拨打:
list.removeAll(rList);
方法3
正如他们所说,比喻给猫剥皮的方法不止一种:
list.remove(function(item) { return item.price > 10 });
给你。。
我相信还有很多方法可以做到这一点。如果您需要一些更高级的数组过滤方法,我建议您