2014-01-07 21 views
3

我正在構建一個Angular應用程序,它將擁有一個頂級控制器和一個二級控制器。將有n個二級控制器,但我想把全局級功能放在某個地方。我在服務中這樣做。AngularJS - 自引用服務?

我開始創建一個返回api的單一服務的路徑,實際上它包含許多函數(下面)。該服務正在返回一個包含兩個屬性分支的對象,每個分支都包含一組函數。我怎樣才能從另一箇中調用其中的一個?

​​
+0

我嘗試了'return'語句之前創建'squareMgr'對象,然後只引用它返回的對象內。 – akonsu

+1

如果他們基本上是兩個服務,爲什麼不明確說明並創建兩個服務?然後一個可以注入另一個。 – zeroflagL

回答

12

怎麼是這樣的:

globalModule.factory('global', function($http) { 

    var glob = { 
     squareMgr: { 
      // ... 
     }, 
     missionMgr: { 
      foo: function() { 
      glob.squareMgr.xyz(); 
      } 

     } 
    }; 

    return glob; 
}); 
+0

Doh!我沒在想。謝謝! – Scott

+0

我開始尋找一種更「官方」的方式來做這件事,但是謝謝你告訴我,我沒有以錯誤的方式去做;;) –