Angular ng-repeat filter: ¿如何指定过滤字段?
Angular ng-repeat filter: ¿How to specify filter fields?
好吧,看起来很简单,其实不然。
我想执行一个简单的 angular 过滤器,但我需要指定我的数组的哪些字段在过滤器中使用。
基本过滤器是:
<li ng-repeat="person in app.people | filter: app.search">
单场过滤器是:
<li ng-repeat="person in app.people | filter: {Surname: app.search}">
如何为过滤器指定多个字段?
类似于:
<li ng-repeat="person in app.people | filter: {Name,Surname: app.search}">
这是一个带有基本过滤器和单字段过滤器的 Plunker:https://jsfiddle.net/odLz1v71/3/
在这种情况下,我建议您在控制器中添加一个过滤功能,如下所示:
vm.searchFilter = function(item){
// Add your own search logic here
return item.Name.includes(vm.search) || item.Surname.includes(vm.search);
}
然后像这样使用它:
<li ng-repeat="person in app.people | filter: app.searchFilter">
我认为您不能直接使用基本过滤器执行此操作,但您可以为 filter
过滤器提供一个函数来为您执行此检查:
vm.checkName = function (value) {
return value.Name.indexOf(vm.search) > -1 || value.Surname.indexOf(vm.search) > -1;
};
好吧,看起来很简单,其实不然。
我想执行一个简单的 angular 过滤器,但我需要指定我的数组的哪些字段在过滤器中使用。
基本过滤器是:
<li ng-repeat="person in app.people | filter: app.search">
单场过滤器是:
<li ng-repeat="person in app.people | filter: {Surname: app.search}">
如何为过滤器指定多个字段? 类似于:
<li ng-repeat="person in app.people | filter: {Name,Surname: app.search}">
这是一个带有基本过滤器和单字段过滤器的 Plunker:https://jsfiddle.net/odLz1v71/3/
在这种情况下,我建议您在控制器中添加一个过滤功能,如下所示:
vm.searchFilter = function(item){
// Add your own search logic here
return item.Name.includes(vm.search) || item.Surname.includes(vm.search);
}
然后像这样使用它:
<li ng-repeat="person in app.people | filter: app.searchFilter">
我认为您不能直接使用基本过滤器执行此操作,但您可以为 filter
过滤器提供一个函数来为您执行此检查:
vm.checkName = function (value) {
return value.Name.indexOf(vm.search) > -1 || value.Surname.indexOf(vm.search) > -1;
};