我有两个过滤器,它们都使用部分代码,它们是相同的,可以作为函数(帮助器)提取。我可以将它放在控制器中,但主要问题是,我不知道如何传递它并使过滤器可见以后使用它。
有解决方案吗? 感谢。
答案 0 :(得分:1)
只需在角度模块中声明过滤器和服务,如下所示:
angular.module('myModule')
.service('myFilterService', function () {
this.mySharedCode = function () {
// Put your shared code here
};
})
.filter('myFilter1', function (myFilterService) {
return function (input, arg) {
if (typeof input !== 'undefined') {
// Do your filtering using myFilterService
myFilterService.mySharedCode(...)
return myFilteredInput
} else {
return myReturnValueIfInputUndefined;
}
}
})
.filter('myFilter2', function (myFilterService) {
// Do your filtering using myFilterService like you did with myFilter1
})
假设示波器上有item
可用,您可以使用过滤器
.controller('myController', function ($scope, $filter) {
var filteredItem = $filter('myFilter')($scope.item, filterArg);
}
{{ item | myFilter : filterArg }}