在某些AngularJS教程中,角度应用程序定义为:
myApp = angular.module("myApp",[]);
但是我们也可以没有它.我唯一可以看到的区别是当我们定义控制器时,我们不能使用成语:
myApp.controller("myCtrl",function(){ })
但必须使用
function myCtrl (){}
鉴于我只会为我的网站创建一个应用程序,是否有明确定义myApp的其他好处?如果我没有定义myApp,那么我的模块附加到哪里?
如果有,我可以在Jasmin测试中重新创建myApp吗?
您可以(至少)3种方式定义控制器:
原文链接:https://www.f2er.com/angularjs/143187.htmlfunction Ctrl() {}
这是一样的:
window.Ctrl = function () {}
>创建一个模块并使用返回的实例创建新的控制器:
var app = angular.module('app',[]); app.controller('Ctrl',function() {});
>直接在模块上创建控制器,而不存储任何引用(与2相同但不使用vars):
angular.module('app',[]); angular.module('app').controller('Ctrl',function() {});
从Angular的角度来看,他们都是一样的,甚至可以混合在一起,他们会工作.唯一的区别是选项1使用全局变量,而在选项2和3中,控制器存储在Angular的私有对象内.