我们正在将我们的webapp迁移到Angular.js。传统上,我们创建了一个名为app
的全局对象,并用它来存储全局使用的函数,变量等。例如,活动用户的名称和头像可能存储在app.user
。
随着向角度的过渡,app
不再仅仅是一个对象,它是一个角度应用程序模块。在Angular思维模式中,像这样全局存储数据的正确方法是什么?它可能完全不同,那很好。我只是想确保我们正确地做到这一点。
我会做一些像app.global = {};
这样简单的事情并在网站周围使用app.global
,但如果角度API改变为使用名为global
的属性,那将是一场噩梦固定。
答案 0 :(得分:1)
执行此操作的正确方法是通过Module.value
或Module.constant
为angular的依赖注入提供值或函数。请参阅:http://docs.angularjs.org/api/angular.Module
答案 1 :(得分:1)
Angular对全球变量过敏。我建议使用service(例如UserDataService
)来保存此数据并将其注入需要的地方(例如在控制器中)。
您的服务将是一个单身人士,无论在何处注入都可以访问。
答案 2 :(得分:-2)
好吧,您也可以在rootScope中将其设置为:
var app = angular.module('appName'){
//other codes removed
});
app.run(function ($rootScope) {
$rootScope.globalVariable = 'hello'; //global variable
});
现在您可以访问globalVariable