在 angular 过滤结果中包含计算值
Include calculated value in angular filter results
是否可以在不修改实际数据集的情况下将过滤器应用于根据数据集计算的值?例如 -
<input ng-model="query">
<li ng-repeat='val in values | filter:query'>
{{val.a}} + {{val.b}}
</li>
我想搜索 val.a + val.b
的结果
我在这里创建了一个简单的 fiddle 来演示 same.Use 自定义过滤器来搜索用户的帖子和评论的总和。
myApp.filter('sumofTwo', function() {
return function(items, search) {
var temp=[];
if (!search) {
return items;
}
for(i=0;i<items.length;i++){
console.log(search);
console.log(items[i].posts+items[i].comments);
if((items[i].posts+items[i].comments)==search){
temp.push(items[i]);
}
}
return temp;
}
});
$scope.users = [{
name: 'Kenny',
posts: 1,
comments: 6
}, {
name: 'Kyle',
posts: 2,
comments: 7
}, {
name: 'Eric',
posts: 3,
comments: 8
}, {
name: 'Stan',
posts: 4,
comments: 9
}, {
name: 'Butters',
posts: 5,
comments: 10
}, ];
app.filter('customFilter', function(){
return function(input){
for (var i = 0; i < input.length; i++){
input[i].search = input[i].a + input[i].b;
}
return input;
}
})
<li ng-repeat="name in names | customFilter | filter : {search: query}">
是否可以在不修改实际数据集的情况下将过滤器应用于根据数据集计算的值?例如 -
<input ng-model="query">
<li ng-repeat='val in values | filter:query'>
{{val.a}} + {{val.b}}
</li>
我想搜索 val.a + val.b
的结果我在这里创建了一个简单的 fiddle 来演示 same.Use 自定义过滤器来搜索用户的帖子和评论的总和。
myApp.filter('sumofTwo', function() {
return function(items, search) {
var temp=[];
if (!search) {
return items;
}
for(i=0;i<items.length;i++){
console.log(search);
console.log(items[i].posts+items[i].comments);
if((items[i].posts+items[i].comments)==search){
temp.push(items[i]);
}
}
return temp;
}
});
$scope.users = [{
name: 'Kenny',
posts: 1,
comments: 6
}, {
name: 'Kyle',
posts: 2,
comments: 7
}, {
name: 'Eric',
posts: 3,
comments: 8
}, {
name: 'Stan',
posts: 4,
comments: 9
}, {
name: 'Butters',
posts: 5,
comments: 10
}, ];
app.filter('customFilter', function(){
return function(input){
for (var i = 0; i < input.length; i++){
input[i].search = input[i].a + input[i].b;
}
return input;
}
})
<li ng-repeat="name in names | customFilter | filter : {search: query}">