2015-04-02 6 views
1

Я пытаюсь инициализировать constant с глобальной переменной в моем angularJS так:Инициализация Constant с глобальной переменной

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:'') 

Но он по-прежнему бросает ту же ошибку. Есть ли тренировки?

+0

myTest доступен в окне? – mohamedrias

ответ

2

angular.isDefined не будет работать, если есть ссылкаError.

Вам может понадобиться использовать:

.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

+2

@codelearner angular.isDefined также является ошибкой throw в случае, если переменная не определена. Только оператор javascript typeof управляет этим королем erro :) – squiroid

+0

Да, этот js 'typeof' сработал ... :) – codelearner

0

вы можете поставить глобальную константу в вашем HTML файл внутри тега сценария, прежде чем что-либо еще нагрузки, как это

скрипт
вар test1 = test1 || «некоторая ценность»;
сценарий

Смежные вопросы