簡體   English   中英

AngularJS的.config()

[英].config() of AngularJS

我是AngularJS的新手。 我正在學習AngularJS。 在這方面,我在教程中發現了以下語法。

app.config(['$routeProvider',function($routeProvider){}]);

.config()是一種方法。 我正在傳遞一個數組作為此.config()方法的參數。 “ $ routeProvider”和一個匿名函數是該數組的兩個元素。 我對嗎 ??

我可以對數組的第一個元素進行任何更改嗎,例如'$ routeProvid''$ routeProvideraa''$ outeProvider'

我可以對數組的第二個元素進行任何更改,例如function($ routeProv)function($ routeProviraa)function($ outeProvi)嗎?

謝謝

UPDATE

我想我沒有表達。 我正在更新問題

我可以使用以下語法嗎?

app.config(['$routeProvid',function($routeProvider){}]);

要么

 app.config(['$routeProvider',function($routeProv){}]);

要么

app.config(['$teProvider',function($routeProvi){}]);

你得到這部分了嗎?

.config()是一種方法。 我正在將數組作為參數傳遞給此.config()方法。 “ $ routeProvider”和一個匿名函數是該數組的兩個元素。

AngularJS使用參數名稱進行依賴項注入; 一旦縮小,沒有數組的變體就會損壞。

由於字符串在縮小期間不會被修改,因此它們被用來映射到其參數。 因此,如果您使用內聯數組批注來回答您的問題,則可以將參數更改為所需的任何值。 如果您不重命名字符串或更改依賴關系的順序,則應該沒問題。

數組的前n個元素是工廠名稱,此時您應該使用已注冊的內容。 這里-路由器-具有自己的提供程序(可以設置路由器服務的事物)。 配置本身沒有太多可供選擇的選項,因為在實例化您的應用之前已對其進行了解析,因此您將在此處使用提供程序和常量。 https://docs.angularjs.org/guide/providers

數組的最后一個元素是函數,其參數應與您在數組中傳遞的內容相對應。 盡管記住順序,但您可以選擇此處的名稱。

因此,總而言之,您無法將引號'$routeProvider'的事物重命名,而是知道您的應用程序和要安裝的內容。 但是您可以在后一個函數($ mynameforrouteprovider)中為它們使用自己的名稱,但必須保持它們的順序。 最好使用與作者使用相同的名稱。

這是AngularJS中的注釋...

基本上,AngularJS提供了一個非常有用的依賴注入系統,該系統允許檢索依賴關系,而只需將它們聲明為函數參數即可。

因此,如果您通過角度配方進行注冊,則可以通過以下方式檢索它們:

 angular .module('test', []) .value('myValue', 'Hello World') ; angular .module('test') .run(function(myValue) { console.log(myValue); }) ; 

這非常有用,因為它允許可伸縮性,可測試性等,但是會產生一個問題: 無法縮小

$injector無法理解縮小的結果,因為函數參數被修改 ,並且上面的代碼變為:

angular.module('test').run(function(a) {console.log(a);})

因此,最小化angularjs代碼的唯一方法是注釋每個必須注入的依賴項

可以通過兩種方式進行注釋:

  1. 通過$inject屬性
  2. 使用類似數組的注釋

您的代碼基本上屬於第二種情況,而不是直接傳遞函數,您可以傳遞在最后一個索引位置具有函數的javascript數組: [function() {}]上面的示例變為:

 angular.module('test').run(['myValue', function(a) {console.log(a);}]); 

有許多構建工具可以執行自動注釋( ng-annotate ),並且始終建議您在strict-di模式下運行angularjs。

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM