Angular的全局可用变量

时间:2013-12-31 17:56:12

标签: javascript angularjs global angular-services

我们正在将我们的webapp迁移到Angular.js。传统上,我们创建了一个名为app的全局对象,并用它来存储全局使用的函数,变量等。例如,活动用户的名称和头像可能存储在app.user

随着向角度的过渡,app不再仅仅是一个对象,它是一个角度应用程序模块。在Angular思维模式中,像这样全局存储数据的正确方法是什么?它可能完全不同,那很好。我只是想确保我们正确地做到这一点。

我会做一些像app.global = {};这样简单的事情并在网站周围使用app.global,但如果角度API改变为使用名为global的属性,那将是一场噩梦固定。

3 个答案:

答案 0 :(得分:1)

执行此操作的正确方法是通过Module.valueModule.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