我一直在研究角度js,我发现创建模块,控制器等的方法很多......
例如:
var app = angular.module('myApp', []);
和
angular.module('myApp', []);
如果我想创建一个控制器(第一种方式):
app.controller('myController', [...]);
创建一个控制器(第二路):
angular.module('myApp').controller('myController', [...]);
真的......有什么区别?
谢谢!
答案 0 :(得分:0)
实际上没有区别,它完全相同。
这个app.controller(...)等于angular.module(' myApp')。controller(...)
因为您声明了一个名为app的变量,它等于angular.module()
链接的东西:angular.module.controller就是你们所有人的3个例子。
将angular.module()放入一个名为app的变量或其他只是使语法更容易的所有^^
答案 1 :(得分:0)
angular.module(' myApp',[])是模块的setter,它在创建实例后返回该实例。将var app =放在前面只保留对模块JavaScript对象的引用。模块名称后面的空数组是依赖项列表。我们传入一个空的依赖列表,以区别于getter调用,让Angular知道它是一个setter调用,我们正在创建一个模块。
angular.module(' myApp')是模块的getter并返回JavaScript对象。这里的区别在于没有依赖项列表,因此Angular知道它正在检索已经创建的模块。
当你在同一个文件中时,可以使用像app这样的局部变量来保持对模块的引用,但是当你在不同的文件中创建控制器时,你不应该依赖于全局变量调用应用程序的存在而应该使用getter调用检索模块。