简单的角度问题。
我应该定义一个角度模块吗?如果我这样或那样做有什么区别?
例如,说var myApp = angular.module('myFirstApp', []);
和angular.module('myFirstApp', [])
之间的区别是什么?
如果我使用第二个选项,我理解我的所有工厂等必须是点链式,对吗?与.factory('myFactory', function() {})
中一样。但是,如果我使用第一个选项并定义角度模块,我还必须定义我的工厂等吗?如myApp.factory('myFactory', function() {
});
?
如果我点链(如第二个选项),那么我是否将所有内容添加到应用程序的全局命名空间中?但是在定义模块和添加所有内容之间的区别是什么myApp
?
请澄清并解释,抱歉这个超级简单的问题,我认为这个问题的答案可以为我提供很多帮助。
谢谢。
编辑:我认为上面的一些问题可以通过以下方式解释:每次使用完整的angular.module()作为getter和全局变量之间的区别是什么?为什么要避免使用全局变量?
答案 0 :(得分:1)
您无需将角度模块分配给变量。 但你需要像这样定义它。
angular.module('myModule', []);
您的工厂不必一个接一个地链接。您可以将工厂添加到这样的模块中。
angular.module('myModule').factory('myFactory', function() {});
您可以使用angular.module('myModule')
获取模块并将控制器,工厂等添加到模块中。
这可以让你把控制器,工厂等等...... 在不同的文件中。
我希望这能引导你朝着正确的方向前进。
答案 1 :(得分:1)
以下是你想知道的关于angularjs的所有内容,但不敢问。 :d
https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md
有很好的做法和解释为什么你应该做一件事,而不是另一件事。
您的答案是单一责任,定义(又名Setters)部分。
答案 2 :(得分:0)
不,他们不必被束缚。这非常简单
angular.module()
既是setter又是getter。您提供第二个参数依赖项数组来设置(声明)新模块
没有第二个参数,它是对先前声明的模块的引用。
所以没有链接,你可以这样做:
// declare new module
angular.module('myFirstApp', []);
// add features of module
angular.module('myFirstApp').controller(...;
angular.module('myFirstApp').directive(...;
这与做:
相同var app = angular.module('myFirstApp', []);
app.controller(....
app.directive(....
但是,最佳做法是避免使用全局变量,并且每次使用完整的angular.module()
作为getter
它也与使用链接相同
angular.module('myFirstApp', [])
.controller(....
.directive(....