如何在angularjs app中包含全局变量?

时间:2014-10-02 02:36:24

标签: javascript angularjs

我在角度上下文之外声明了一个全局变量:

var globalv =“Hello”;

此变量不会更改。我有一个想要使用它的指令...

$scope.somevar = globalv + "_";

在angularjs app / context中包含globalv的最简单方法是什么?当我尝试以上述方式引用它时,我收到错误。

2 个答案:

答案 0 :(得分:2)

我会考虑将值包装在一个角度常量中,这样你就可以只在需要的地方注入它

var myApp = angular.module('myApplication',[]);
myApp.constant('myConstant', globalv);

确保在定义角度模块之前定义了globalv变量。

我比使用rootscope /全局变量更喜欢这个,因为你可以控制价值的消费者是谁。

您可以像这样注入常量:

mayApp.directive('myDirective',['myConstant',
        function (myConstant) {
            return {
                ..
        };
}]);

答案 1 :(得分:1)

你有什么理由不能在角度背景中包含它吗?如果它绝对需要是全局的,你可以在角度上下文中将它添加到rootscope。

/* declare rootscope variables when the angular app starts*/
angular.module('someApp').run(function ($rootScope) {
    $rootscope.globalv = "Hello";
});

然后,您可以在角度应用程序中的任何位置引用该rootcope变量。

这对我来说非常简单,但我个人讨厌使用$ rootScope,除非我必须这样做。你应该尝试摆脱全局变量。