我需要在angular指令的link函数中使用$ filter,但是没有办法将$ filter作为参数传递给链接函数。
app.directive('myDirective', function($compile) {
return {
restrict: 'A',
scope: {
ngModel: '=',
},
require: 'ngModel',
link: function($scope, elem, attr, ctrl) {
}
};
});
http://plnkr.co/edit/XpnY5dq7rnl2sWXlsN4t?p=preview
如何访问$ filter里面的链接功能?
答案 0 :(得分:11)
将它注入实际的指令函数,然后可以在整个指令中使用它(包括你的链接函数)。
app.directive('myDirective', function($compile, $filter){
return {
restrict: 'A',
scope: {
ngModel: '=',
},
require: 'ngModel',
link: function($scope, elem, attr, ctrl) {
// call $filter here as you wish
}
};
});
只需将链接函数视为私有指令函数,它不直接处理角度的注入系统。通过注入主指令函数,你基本上就是说所有内部函数都可以使用它。
答案 1 :(得分:4)
您需要注入$filter
依赖项,所有自定义服务/工厂和内置角度提供程序($ timeout,$ filter)都应该按以下方式注入
app.directive('myDirective', ['$compile','$filter',function($compile,$filter) {
return {
restrict: 'A',
scope: {
ngModel: '=',
},
require: 'ngModel',
link: function($scope, elem, attr, ctrl) {
console.log($filter);
}
};
}]);