2015-03-02 24 views
1

我嘗試添加自定義服務到NG模塊直接如何添加個性化服務轉變爲角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

的定義修改爲:

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

雖然,我不會建議延長NG模塊。就模塊化架構而言,這應該被視爲第三方。

+0

所以....如果我將附加服務追加到另一個模塊中,我需要的是將自定義模塊注入到ng-app中,而無需注入任何注入自定義模塊的服務,是嗎? – Ezeewei 2015-03-02 19:13:58

+1

這是正確的,所有組件(服務,提供者,控制器等)都是在將模塊標記爲依賴項時被傳遞的。例如,如果你有:angular.module('foo',['bar']);模塊foo可以訪問模塊欄中的所有組件,並且如果模塊欄具有相關性,也可以擴展這種情況,您也可以訪問這些模塊。 – dmcqu314 2015-03-04 03:37:56