在:
module.directive 'name', ->
(scope, element, attr) ->
# Whatever implemenation
链接函数的scope
,element
和attrs
参数是否依赖于名称推断的依赖注入?如果是,我怎样才能让它们缩小证明?
或者他们是否依赖于良好的旧论据顺序来传递给他们的内容?
在:
module.directive 'name', ->
(scope, element, attr) ->
# Whatever implemenation
链接函数的scope
,element
和attrs
参数是否依赖于名称推断的依赖注入?如果是,我怎样才能让它们缩小证明?
或者他们是否依赖于良好的旧论据顺序来传递给他们的内容?
不,链接函数有一组预定义的参数。
function link($scope, $element, attrs, ctrl) {
//Your method
}
他们是
required
如果您想将 DI 与指令一起使用(就像我所做的那样),请将要注入的参数放入指令工厂函数而不是链接函数中:
module.directive('name', function($timeout) {
return function(scope, element, attrs) {
...
};
});
为了允许缩小,将函数参数放在一个数组中,就像对控制器所做的那样:
module.directive('name', ['$timeout', function($timeout) {
return function(scope, element, attrs) {
...
};
}]);
请参阅文档中的当前时间示例。
编辑:有关注入服务的演示,请参见此处。当返回一个指令(例如)对象而不是函数$timeout
时,您可以做同样的事情。return {restrict: 'E', link: function() {...}}