app.js
angular.module('capilleira.clickAndGambleMobile', [
'capilleira.clickAndGambleMobile.filters'
)]
filter.js
angular.module('capilleira.clickAndGambleMobile.filters', [])
.filter('sportsFiltered', function() {
return function(output) {
return alert('I AM THE FILTER');
}
});
不管.html
<!--HERE IS THE NG-MODEL-->
<input type="text" ng-model="sportsFiltered">
<div ng-repeat="sport in sportsFilter = (sports | filter:sportsFiltered)">
{{sport.name}}
</div>
<div ng-repeat="league in sport.leagues | filter: {leagues: [{'name':sportsFiltered}]}}">
{{league.name}}
</div>
为什么这个过滤器不做
alert
?或者我该怎么做才能意识到过滤器是否正常工作?
最佳答案
您错误地使用了过滤器,您已经创建了一个完整的过滤器,因此您应该直接将其用作
sports | sportsFiltered
代替
sports | filter:sportsFiltered
当您使用
(sports | filter:sportsFiltered)
它被认为是一个过滤器(内置过滤器)comparator
您可以设置的功能,它只会运行该功能(在范围内),并根据真/假值决定是否显示该项目。所以最终它甚至不考虑您创建的实际过滤器。{{ filter_expression | filter : expression : comparator}}
关于angularjs - 为什么我的自定义过滤器不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353940/