我看到了以下问题(以及其他类似问题),它解决了尝试将工厂注入(inject)指令的链接函数的问题:
Injecting service to Directive
我见过的解决方案将链接功能保持在指令的范围内:
angular.module('myapp')
.directive('myDir', function(myService){
return {
restrict: 'E',
scope: {
frame: '='
},
link: function postLinkFn(scope, elem, attr) {
myService.doSomething();
}
};
});
但是,我希望能够将 postLinkFn 分离到组织的 .directive 范围之外,就像我可以使用 Controller 一样。
是否可以在将服务注入(inject)其中的同时分离此功能?
最佳答案
.directive('myDir', function(myService){
var deps = { myService: myService };
return {
...
// myService is available as this.myService inside postLinkFn
link: angular.bind(deps, postLinkFn)
};
});
link
函数没有使用依赖注入(inject)并且没有词法 this
, 将注入(inject)的依赖项绑定(bind)到 this
是一个合理的举动。
关于angularjs - 将工厂注入(inject)到指令范围之外定义的指令链接函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33611888/