2017-08-13 15 views
1

因此在大多數情況下,我看到angular.module('', []).run()未被使用。這是否意味着角度在內部調用它?爲什麼和App.run()在角度中使用

如果使用了爲什麼?如果可能的話,請爲我提供一個簡單的用例來了解該功能的必要性。

+0

什麼是'app'?模塊參考? –

+0

對不起我的壞。它是一個模塊。 –

回答

3

這裏是the official docs say

模塊是配置的集合,它運行得在引導過程中應用到應用程序 塊。在其最簡單的 形成模塊有二種的 塊的集合:

  • 配置塊 - 在供應商登記 和配置階段得到執行。只有提供者和常量可以注入 到配置塊中。這是爲了防止服務在完全配置之前發生意外實例化 。

  • 運行塊 - 獲取 在創建注入器後執行並用於啓動 應用程序。只有實例和常量可以注入運行 塊。這是爲了在 應用程序運行時阻止進一步的系統配置。

所以AngularJS具有引導在兩個子階段,每個分割的兩個主要階段:

  • 配置
  • 「運行」

  • 編譯&結合
  • 第一消化週期

您可以訂閱他們每個人。要訂閱run階段,請使用模塊的run方法。在AngularJS分析DOM並編譯組件之前以及在首次更改檢測週期之前,可以使用此階段執行一些邏輯。

例如,你之前的任何組件的注入可以初始化服務:

angular.module('mymodule').run(function (MyService) { 
    MyService.init(); 
}); 

如果不訂閱run階段,AngularJS沒有做什麼特別的事情。根本沒有功能被觸發。

+1

另請參見[AngularJS angular.module API參考 - 運行](https://docs.angularjs.org/api/ng/type/angular.Module#run)。 – georgeawg

相關問題