目前我正在将服务注入像这样的指令
在我的指令
上<div myDirective myservice="service1"></div>
在我的指令链接函数js中,如果我在我的服务中定义了一些东西,我会像这样注入它
link: function(scope, elm, attrs, c) {
if(attrs.validations){
var myService = elm.injector().get(attrs.validations);
}
然后,当我的指令(它是一个选择框)上的内容发生变化时,我就会使用此服务
elm.on("change",function(){
myService.myServiceFunction(myParams)
});
一切正常。我似乎无法工作的是如何注入多种服务,例如
<div myDirective myservice="service1,service2"></div>.`
我已经尝试将服务加载到数组中并以这种方式注入但是当我尝试调用它时,我总是得到一个不是函数错误。
我正在使用注入方法,因为该指令是cms的一部分,最终用户将定义myservice中显示的内容。我不知道我的服务会是什么。它可能是3种服务,可能没有。
我真的很感激任何指导
更新
所以我设置了一个这样的循环
for(i =0; i < services.length; i++){
$injector.get(services[i])
}
如果我尝试调用这些服务,我会得到一个Uncaught ReferenceError告诉我他们没有定义?