AngularJS中的全局变量

358

我有一个问题,我在控制器的作用域中初始化了一个变量。然后当用户登录时,在另一个控制器中更改它。这个变量用于控制诸如导航栏之类的东西,并根据用户类型限制对站点的某些部分的访问,因此保持其值非常重要。问题在于,初始化它的控制器会被 Angular 再次调用,然后将变量重置为其初始值。

我认为这不是声明和初始化全局变量的正确方法,实际上它并不是真正的全局变量,所以我的问题是什么是正确的方法,是否有任何好的示例可以与当前版本的 Angular 一起使用?


13
由于这是谷歌的第一搜索结果:现在您可以使用app.constant()和app.value()创建应用程序范围内的常量和变量。更多信息请参见:http://bit.ly/1P51PED - Mroz
12个回答

-1

这其实很简单。(如果你正在使用 Angular 2+ 的话。)

只需添加

declare var myGlobalVarName;

在组件文件的顶部某处(例如在“import”语句之后),您将能够在组件内的任何地方访问“myGlobalVarName”。


-2

你也可以像这样做...

function MyCtrl1($scope) {
    $rootScope.$root.name = 'anonymous'; 
}

function MyCtrl2($scope) {
    var name = $rootScope.$root.name;
}

3
如果您使用这种方式,$rootScope未定义。 - Ahmad Ahmadi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接