Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 过滤器在ng重复中不工作_Javascript_Angularjs_Angularjs Filter - Fatal编程技术网

Javascript 过滤器在ng重复中不工作

Javascript 过滤器在ng重复中不工作,javascript,angularjs,angularjs-filter,Javascript,Angularjs,Angularjs Filter,我有一个关于在ng repeat中过滤的问题 以下是模板代码: <li ng-repeat="friend in friends | filter:personFilter"> <span>{{friend.name}}</span> <span>{{friend.phone}}</span> <span>{{friend.items | GetItemsTitels}}</span> &

我有一个关于在ng repeat中过滤的问题

以下是模板代码:

<li ng-repeat="friend in friends | filter:personFilter">
    <span>{{friend.name}}</span>
    <span>{{friend.phone}}</span>
    <span>{{friend.items | GetItemsTitels}}</span>
</li>
</lang-html>
  • {{friend.name} {{朋友.电话} {{friend.items}GetItemsTitels}
  • 其中GetItemsTitels返回一些字符串。

    为什么NST personFilter不处理显示从GetItemsTitels筛选器返回的stirng的最后一列?如果jsfiddle,如果在过滤器中键入“aa”,则不会得到任何结果。
    是否因为此列的筛选器已分配,这就是personFilter不应用它的原因?

    ng repeat
    上的筛选器将只考虑对象中的内容。而不是循环运行时可能显示的内容。但是,您可以使用真实数据填充
    朋友
    ,然后过滤器就可以工作了

    用法:

    <ul>
      <li ng-repeat="friend in friends | injectItemTitles:'itemTitles' | filter:personFilter">
        <span>{{friend.name}}</span>
        <span>{{friend.phone}}</span>
        <span>{{friend.itemTitles.join(', ')}}</span>
      </li>
    </ul>
    

    如果您在筛选器中键入“aa”,则不会得到任何结果,因为它将在不存在“aa”的好友列表中筛选此“aa”。因为items数组中有ID,它将再次过滤并返回所有项的字符串。所以,无论您在文本框中键入什么,都将仅从好友列表中筛选。如果你仍然想实现同样的目标,那么你必须修改你的JSON

    <li ng-repeat="friend in friends | filter:personFilter">
    <span>{{friend.name}}</span>
    <span>{{friend.phone}}</span>
    <span>{{friend.items | GetItemsTitels}}</span>
    </li>
    
  • {{friend.name} {{朋友.电话} {{friend.items}GetItemsTitels}

  • 根据我的理解,这里是:

    过滤器仅适用于“数组”类型,而不适用于“对象”类型

    鉴于:

    var friends={'a':'april','b':'bob'};
    
    <li ng-repeat="friend in friends | filter:personFilter">
    <!-- personFilter will not run -->
    
    
    var friends=[{code:'a',name:'april'},{code:'b',name:'bob'}];
    personFilter=function(item){
        return item.code !== personModel
    }
    
    <li ng-repeat="friend in friends | filter:personFilter">
    <!-- will filter -->
    
    var-friends={'a':'april','b':'bob'};
    
  • var-friends=[{code:'a',name:'april'},{code:'b',name:'bob'}]; personFilter=功能(项目){ return item.code!==personModel }

  • 谢谢你的回答,这个解决方案节省了我很多时间。
    var friends={'a':'april','b':'bob'};
    
    <li ng-repeat="friend in friends | filter:personFilter">
    <!-- personFilter will not run -->
    
    
    var friends=[{code:'a',name:'april'},{code:'b',name:'bob'}];
    personFilter=function(item){
        return item.code !== personModel
    }
    
    <li ng-repeat="friend in friends | filter:personFilter">
    <!-- will filter -->