2016-05-30 64 views
1

在我的AngularJS應用程序中,我想初始化一個工廠服務,而不用從控制器或其他服務調用它。如何才能做到這一點?AngularJS - 在不調用它的情況下初始化服務

原因是我希望服務在應用程序加載時調用其功能之一。

+1

您可以隨時使用app bootstrap函數'run'加載服務及其方法。 – AranS

+0

我已經更新了我的問題,認爲我可能用錯誤的方式解釋了它;-) –

+1

正如@AranS所說,您可以在角度模塊的運行階段調用服務方法。我們正在爲我們的網站分析做同樣的事情 – user3045179

回答

2

您可以在angular.module(...).run(...)函數中注入您的服務。 然後,您可以在服務的主要功能/構造函數中添加所需的代碼。

但是隻是在不使用它的情況下注入服務是一種不好的做法,因爲您或某人可能會在不知道爲什麼被注入的情況下將其刪除。

因此,對我來說最好的方法是將服務注入.run函數中,並調用您將從服務中公開的yourService.init()方法。 這會更明確。

app.run(['yourService', function(yourService) { 
    yourService.init(); 
}]); 
相關問題