2016-01-23 90 views
0

通過閱讀模型和控制器下的angular tutorial進行學習,代碼塊app/js/controllers.js下的第一段。聲明和定義角主模塊

請注意,我們的ng-app指令(在html標籤上)現在指定/聲明phonecatApp模塊名稱作爲引導Angular應用程序時加載的模塊。

和代碼在controllers.js的第一行是:
var phonecatApp = angular.module('phonecatApp', []);

我一直在努力理解究竟是什麼這行代碼是應該做的?
如果我的理解成爲我的權利,我也看到了,這裏的變量名被省略,如:

angular.module('phonecatApp', []) 
    .controller('PhoneListCtrl', function ($scope) { 
     $scope.phones = [... 

所以ng-app="phonecatApp"告訴腳本的角模塊的名稱來加載。
腳本如何知道主角模塊定義?是
var phonecatApp = angular.module('phonecatApp', []);
2步驟行,定義主模塊並將其分配給變量?
如果是這樣,稍後可以通過添加更多的控制器/服務來修改此定義嗎? 由於

回答

0
angular.module('phonecatApp', []) 

定義並註冊了一個名爲phonecatApp模塊。這是主模塊,不是因爲它是這樣聲明的,而是因爲這是ng-app="phonecatApp"中使用的模塊。

可這個定義可以通過它

是增加更多的控制器/服務,當然後來修改。通過調用模塊的controller()方法來添加控制器。並且可以通過調用

angular.module('phonecatApp') 

即相同的功能,用於定義得到它的模塊的引用,但沒有模塊,第二個參數的陣列。

這是記載:https://docs.angularjs.org/api/ng/function/angular.module

的angular.module是用於創建,登記與檢索角模塊,一個全球性的地方。應該可用於應用程序的所有模塊(角核或第三方)必須使用此機制進行註冊。

傳遞一個參數檢索現有angular.Module,而通過多個參數創建一個新的angular.Module

+0

所以變種phonecatApp = angular.module( 'phonecatApp',[]);定義主模塊並將該模塊分配給可變phonecatApp?那是對的嗎? –

+0

否。它定義** a **模塊,並將該模塊分配給一個變量。 「main」模塊是'ng-app'中使用的模塊。它可能是那一個,或者另一個。所有模塊,主要與否,都是以相同的方式定義的。 –