2016-01-23 89 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'中使用的模块。它可能是那一个,或者另一个。所有模块,主要与否,都是以相同的方式定义的。 –