将控制器方法定义为自定义筛选器在AngularJs中不起作用
我正在尝试使用AngularJs中与Ionic捆绑的控制器方法实现一个自定义过滤器将控制器方法定义为自定义筛选器在AngularJs中不起作用,angularjs,filter,ionic,Angularjs,Filter,Ionic,我正在尝试使用AngularJs中与Ionic捆绑的控制器方法实现一个自定义过滤器 <div class="list"> <a class="item item-icon-right" data-ng-repeat="d in filtered_documents = (data.documents | filter:filterDocuments )"> {{ d.name }} <i class="icon ion-che
<div class="list">
<a class="item item-icon-right" data-ng-repeat="d in filtered_documents = (data.documents | filter:filterDocuments )">
{{ d.name }}
<i class="icon ion-chevron-right icon-accessory"></i>
</a>
</div>
我确信我的设置,因为我可以在filterDocuments方法中设置一个断点并看到它运行。但是列表总是空的,从来没有列出过任何东西
我使用的是爱奥尼亚1.0.0-beta.14版中捆绑的AngularJS 1.3.6版。您必须为模块注册过滤功能,如下所示:
angular.module('yourModule', []).filter('filterDocuments', function() {
return function(doc) {
return true;
};
});
您不能将$scope方法或控制器方法用作过滤器您需要使用自定义角度过滤器,并使用类似于控制器sintax的sintax定义它,但作为过滤器
yourApp.filter('filterDocuments', function(){
return function(array) {
//your logic for the array here
return filtered_array //return the array modified by your code
}
})
以及模板html中的
<div class="list">
<a class="item item-icon-right" data-ng-repeat="d in data.documents | filterDocuments">
{{ d.name }}
<i class="icon ion-chevron-right icon-accessory"></i>
</a>
</div>
这是定义过滤器的正确方法。但我对以下解决方案更感兴趣:
<div class="list">
<a class="item item-icon-right" data-ng-repeat="d in data.documents | filterDocuments">
{{ d.name }}
<i class="icon ion-chevron-right icon-accessory"></i>
</a>
</div>