Javascript 过滤器在ng重复中不工作
我有一个关于在ng repeat中过滤的问题 以下是模板代码: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> &
<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 -->