在角度过滤器结果中包括计算值

Include calculated value in angular filter results

本文关键字:包括 计算 结果 过滤器      更新时间:2023-09-26

是否可以在不修改实际数据集的情况下将筛选器应用于从数据集计算的值?例如

<input ng-model="query">
<li ng-repeat='val in values | filter:query'>
  {{val.a}} + {{val.b}}
</li>

我想搜索val.a+val.b 的结果

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}">

这里我创建了一个简单的fiddle来演示相同的东西。使用自定义筛选器按用户搜索帖子和评论的总和。

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
    }, ];