使用全局变量初始化常量

时间:2015-04-02 04:39:22

标签: angularjs

我正在尝试使用constant中的全局变量初始化angularJS,如下所示:

var app = angular.module('myApp')
.constant('test1', myTest.test1)
.constant('test2', myTest.test2);

问题是有时全局变量myTest不可用,因为它会引发错误myTest is not defined。我也试过这个:

.constant('test1', angular.isDefined(myTest)?myTest.test1:'')
.constant('test2', angular.isDefined(myTest)?myTest.test2:'')

但它仍然会引发同样的错误。这有什么锻炼吗?

2 个答案:

答案 0 :(得分:2)

如果存在referenceError,

angular.isDefined将无效。

您可能需要使用:

.constant('test1', typeof myTest != "undefined"? myTest.test1 : "");

这是因为ReferenceError。

最好将角度代码包含在设置myTest属性的文件下面。

如果script.js正在设置myTest对象,那么

window.myTest = {
   test1 : "Some value"
}

然后在其下方插入角度应用脚本

var app = angular.module('myApp')
.constant('test1', myTest.test1)
.constant('test2', myTest.test2);

在这种情况下,它将始终定义。

答案 1 :(得分:0)

你可以将你的全局常量放在脚本标记内的html文件中,然后再加载其他任何内容

脚本
        var test1 = test1 ||一些价值&#39 ;;
  脚本