2015-04-02 122 views
1

我想初始化全局變量constant在我angularJS這樣的:初始化常量和全局變量

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

的問題是有時因它拋出一個錯誤myTest is not defined全局變量myTest不可用。我也試過這個:

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

但它仍然會拋出同樣的錯誤。這有什麼鍛鍊嗎?

+0

在窗口MYTEST可用? – mohamedrias 2015-04-02 04:42:38

回答

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); 

在這種情況下,將始終定義。

+0

你知道我在輸入相同的typeof運算符:-P 現在+1你賓果:-) – squiroid 2015-04-02 04:49:21

+2

@codelearner angular.isDefined也拋出錯誤的情況下變量沒有定義。只有JavaScript的typeof操作管理這個王埃羅的:) – squiroid 2015-04-02 04:51:18

+0

是的這個js'typeof'已經工作... :) – codelearner 2015-04-02 06:39:29

0

,你可以把你的全局常量在HTML文件中的腳本標記中這樣

腳本
VAR測試1 =測試1 ||別的加載之前'有價值';
腳本