Javascript 在JS中从内部装饰器调用工厂服务
使用并尝试,我试图将我自己的服务(Javascript 在JS中从内部装饰器调用工厂服务,javascript,angularjs,angularjs-service,Javascript,Angularjs,Angularjs Service,使用并尝试,我试图将我自己的服务(LinkService)注入模块,但我得到一个[$injector:unpr]未知提供程序错误 module.config(function($provide, LinkService){ $provide.decorator('taOptions', ['taRegisterTool', '$delegate', function(taRegisterTool, taOptions){ // $delegate is the taOpt
LinkService
)注入模块,但我得到一个[$injector:unpr]未知提供程序
错误
module.config(function($provide, LinkService){
$provide.decorator('taOptions', ['taRegisterTool', '$delegate', function(taRegisterTool, taOptions){
// $delegate is the taOptions we are decorating
// register the tool with textAngular
taRegisterTool('colourRed', {
iconclass: "fa fa-square red",
action: function(){
this.$editor().wrapSelection('forecolor', 'red');
LinkService.createLink(/*...*/)
}
});
// add the button to the default toolbar definition
taOptions.toolbar[1].push('colourRed');
return taOptions;
}]);
});
如何将服务注入此配置?我们无法将服务注入
配置
块
配置块-在提供程序注册期间执行
和配置阶段。只能注入提供程序和常量
进入配置块。这是为了防止意外实例化
在完全配置服务之前,服务的数量
运行块-在创建和使用喷油器后执行
启动应用程序。只能使用实例和常量
注入运行块。这是为了防止进一步的系统故障
在应用程序运行时进行配置
然而,我们可以将类似的逻辑构建成一个简单的模型。我不确定LinkService
的用法,但作为一个提供商,我可以看到如下内容
module.provider('LinkProvider', function () {
var link;
return {
createLink: function (value) {
link = value;
},
$get: function () {
return {
link: 'http://' + link
}
}
}
});
module.config(function (LinkProvider) {
LinkProvider.createLink('stackoverflow.com');
});
有关提供商的全面评论,请参见博客工作非常出色!谢谢