在一些AngularJS教程中,angular app定义为:
myApp = angular.module("myApp",[]);
Run Code Online (Sandbox Code Playgroud)
但我们也可以没有它.我能看到的唯一区别是当我们定义控制器时,我们不能使用成语:
myApp.controller("myCtrl",function(){ })
Run Code Online (Sandbox Code Playgroud)
但必须使用
function myCtrl (){}
Run Code Online (Sandbox Code Playgroud)
鉴于我只为我的网站创建一个应用程序,明确定义myApp还有其他好处吗?如果我没有定义myApp,那么我的模块附加到哪里?
如果有,我如何在Jasmin的测试中重新创建myApp?
bml*_*ite 34
您可以(至少)3种方式定义控制器:
将控制器定义为全局var(存储在window对象上)
function Ctrl() {}
Run Code Online (Sandbox Code Playgroud)
这跟做的一样:
window.Ctrl = function () {}
Run Code Online (Sandbox Code Playgroud)创建一个模块并使用返回的实例创建新控制器:
var app = angular.module('app', []);
app.controller('Ctrl', function() {});
Run Code Online (Sandbox Code Playgroud)直接在模块上创建控制器而不存储任何引用(与2但不使用vars 相同):
angular.module('app', []);
angular.module('app').controller('Ctrl', function() {});
Run Code Online (Sandbox Code Playgroud)从Angular的角度来看,他们都是这样做的,你甚至可以将它们混合在一起,它们就会起作用.唯一的区别是,选择1使用全局变量,而期权2和3控制器存储的角度的私人对象内.
| 归档时间: |
|
| 查看次数: |
9123 次 |
| 最近记录: |