0

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

随着向 Angular 的过渡app,它不再只是一个对象,它是一个 Angular 应用程序模块。以 Angular 思维方式在全球范围内存储数据的正确方法是什么?它可能完全不同,那很好。我只是想确保我们做得正确。

我会做一些简单的事情app.global = {};app.global在网站周围使用,但如果 angular API 更改为使用名为 的属性global,那么修复将是一场噩梦。

4

3 回答 3

1

Angular 对全局变量相当敏感。我建议使用服务(例如UserDataService)来保存这些数据并将其注入需要的地方(比如在控制器中)。

您的服务将是一个单例,可以在任何注入的地方访问。

于 2013-12-31T18:02:50.720 回答
1

Module.value正确的方法是通过or向 Angular 的依赖注入器提供值或函数Module.constant。请参阅:http ://docs.angularjs.org/api/angular.Module

于 2013-12-31T18:00:21.973 回答
-2

好吧,您也可以在 rootScope 中将其设置为:

var app = angular.module('appName'){
   //other codes removed
}); 

app.run(function ($rootScope) {
    $rootScope.globalVariable = 'hello'; //global variable
});

现在您可以访问 globalVariable

于 2013-12-31T18:09:16.720 回答