我在角度上下文之外声明了一个全局变量:
var globalv =“Hello”;
此变量不会更改。我有一个想要使用它的指令...
$scope.somevar = globalv + "_";
在angularjs app / context中包含globalv的最简单方法是什么?当我尝试以上述方式引用它时,我收到错误。
答案 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,除非我必须这样做。你应该尝试摆脱全局变量。