一个简单的 Javascript 问题,例如我有一个像这样的 Angular app.js;
'use strict';
var eventsApp = angular.module('eventsApp',[]);
我读到在 Javascript 文件的开头使用“use strict”会使该文件中的所有变量都以严格模式处理,这意味着当您使用全局变量时它会抛出错误(?),但是我们如何访问如果不在全局范围内,来自我们所有控制器和服务的“eventApp”对象?
一个简单的 Javascript 问题,例如我有一个像这样的 Angular app.js;
'use strict';
var eventsApp = angular.module('eventsApp',[]);
我读到在 Javascript 文件的开头使用“use strict”会使该文件中的所有变量都以严格模式处理,这意味着当您使用全局变量时它会抛出错误(?),但是我们如何访问如果不在全局范围内,来自我们所有控制器和服务的“eventApp”对象?
错误的假设是在严格模式下所有全局变量都是不允许的。实际上只有未定义的全局变量会引发错误。(事实上,如果你不能使用任何全局变量,你基本上什么都做不了。在全局范围内必须至少有一些东西。)
例如:
"use strict";
var a = "foo";
var b;
(function() {
a = "bar"; // this is ok, initialized earlier
b = "baz"; // this is also ok, defined earlier
c = "qux"; // this is not, creating an implicit global
})();
使用变量a
orb
不是问题,但是c
会抛出错误。eventApp
在您的示例中使用该变量应该没有问题。
您不必引用 eventsApp
,因为 Angular 将通过您用于定义模块的名称“eventsApp”保存对对象的引用。
因此,在所有其他文件中,您可以使用:
angular.module('eventsApp');
访问模块。