Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JS中从内部装饰器调用工厂服务_Javascript_Angularjs_Angularjs Service - Fatal编程技术网

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');
});

有关提供商的全面评论,请参见博客

工作非常出色!谢谢