如何在angularjs应用程序中包含全局变量?
我有一个全局变量声明在角上下文之外:如何在angularjs应用程序中包含全局变量?
var globalv =“Hello”;
此变量不会更改。我想要使用它的指令......
$scope.somevar = globalv + "_";
什么是包括在我的angularjs应用/上下文globalv最简单的方法?当我尝试以上述方式引用它时,出现错误。
我会考虑在包装的角度恒定值,这将使你注入它只有在其需要
var myApp = angular.module('myApplication',[]);
myApp.constant('myConstant', globalv);
只要确保定义你的角模块之前globalv变量定义。
我比使用rootcope /全局变量更好,因为您可以控制值的使用者是谁。
你可以注入像这样的常数:
mayApp.directive('myDirective',['myConstant',
function (myConstant) {
return {
..
};
}]);
你有什么理由不能将它包含在角度上下文中吗?如果它绝对需要是全局的,您可以将它添加到角度范围内的根目录。
/* declare rootscope variables when the angular app starts*/
angular.module('someApp').run(function ($rootScope) {
$rootscope.globalv = "Hello";
});
然后,您可以在角度应用程序中的任意位置引用该rootcope变量。
这对我来说很简单,但我个人讨厌使用$ rootScope,除非必须。你应该尽量远离全局变量。
我已经包含在我的index.html具有所有angular.module(“someApp”)一个js文件...我想注入globalv在我的index.html页面中(它几乎不包含javascript),在你的答案中,如果包含代码的脚本标记存在于包含应用程序开始的js文件之前或之后,是否存在(angular.module ('someApp'))? – Rolando 2014-10-02 02:54:12
如果你打算使用角度,我建议把所有的逻辑放在你的角码里,我不确定为什么你需要在你的角码之外的脚本标签中有一个变量。 – 2014-10-02 12:01:30
这个常数是否可以用于我的指令?我可以使用: $ scope.somevar = myConstant? – Rolando 2014-10-02 04:13:15
增加了一个例子 – TGH 2014-10-02 04:16:21