Ase*_*tam 31
您可以使用常量或值.
常量
var app = angular.module('myApp', []);
app.constant('appName', 'Application Name');
app.controller('TestCtrl', ['appName', function TestCtrl(appName) {
console.log(appName);
}]);
Run Code Online (Sandbox Code Playgroud)
值
var app = angular.module('myApp', []);
app.value('usersOnline', 0);
app.controller('TestCtrl', ['usersOnline', function TestCtrl(usersOnline) {
console.log(usersOnline);
usersOnline = 15;
console.log(usersOnline);
}]);
Run Code Online (Sandbox Code Playgroud)
http://ilikekillnerds.com/2014/11/constants-values-global-variables-in-angularjs-the-right-way/
Mat*_*iba 10
使用value()
定义的对象,你的"全局变量"存储为对象的属性.然后将该对象作为依赖项添加到需要访问其属性的任何控制器.这具有将所有变量封装到单个对象中的积极副作用,该对象整齐且不太可能遭受命名空间冲突.
这是模式:
app.value('myVars', {
usersOnline:0
});
app.controller('TestCtrl', ['myVars', function TestCtrl(myVars) {
console.log(myVars.usersOnline);
myVars.usersOnline = 15;
console.log(myVars.usersOnline);
}]);
Run Code Online (Sandbox Code Playgroud)
仅供参考Aseem的答案是行不通的,因为他的例子使用value()
的是原始类型.要清楚什么不起作用:
app.value('usersOnline', 0);
app.controller('TestCtrl', ['usersOnline', function TestCtrl(usersOnline) {
console.log(usersOnline);
usersOnline = 15; // <-- THIS WILL NOT PERSIST outside the controller.
console.log(usersOnline);
}]);
Run Code Online (Sandbox Code Playgroud)