在:
module.directive 'name', ->
(scope, element, attr) ->
# Whatever implemenation
链接函数的scope
,element
和attrs
参数是否依赖于名称推断的依赖注入?如果是的话,我怎样才能使它们成为缩小证明?
或者他们是否依赖于旧的争论顺序来传递给他们什么?
答案 0 :(得分:44)
不,链接功能有一组预定义的参数。
function link($scope, $element, attrs, ctrl) {
//Your method
}
他们是
required
答案 1 :(得分:22)
如果你想将DI与指令一起使用(正如我所做的那样),请将参数注入指令工厂函数而不是链接函数:
module.directive('name', function($timeout) {
return function(scope, element, attrs) {
...
};
});
要允许缩小,请将函数参数放在数组中,就像对控制器一样:
module.directive('name', ['$timeout', function($timeout) {
return function(scope, element, attrs) {
...
};
}]);
请参阅the docs中的当前时间示例。
编辑:See here以获取注入$timeout
服务的演示。返回指令(例如return {restrict: 'E', link: function() {...}}
)对象而不是函数时,可以执行相同的操作。