如何直接将自定义服务附加到角度模块中

时间:2015-03-02 17:08:14

标签: angularjs angularjs-service angularjs-module

我尝试直接在ng模块中添加自定义服务

'use strict';
angular
    .module("ng")
    .service('getAQueryParameterByName', ['', function(){
        console.log("getAQueryParameterByName service active");
        this.getParameter = function(name){
            console.log("getParameter!");
        }
    }]);

因此,当我尝试通过执行getAQueryParameterByName.getParameter(var)来运行服务时,我遇到了错误

ReferenceError: getAQueryParameterByName is not defined

通常这个错误是因为我没有注入服务,但是,我想,因为我将自定义服务直接注入模块,因此,我真的不需要再次注入控制器?但是,我试图再次将服务添加到控制器中,并且我收到

的错误
 Error: [$injector:unpr] Unknown provider: Provider <-  <- getAQueryParameterByName

此时我真的很困惑......我哪里做错了?

1 个答案:

答案 0 :(得分:1)

将您的定义更改为:

'use strict';
angular
    .module("ng")
    .service('getAQueryParameterByName', [function(){
        console.log("getAQueryParameterByName service active");
        this.getParameter = function(name){
            console.log("getParameter!");
        }
    }]);

虽然,我不建议扩展ng模块。就模块化架构而言,这应被视为第三方。