2015-05-28 2 views
1

Я хотел бы знать, как сделать объект JavaScript доступным по всему миру.Сделать объект Javascript доступным глобально

У меня есть Угловая служба, из которой мне нужен доступ к общедоступному ключу API, сохраненному как переменная среды. Мой план состоял в том, чтобы сделать яваскрипт заявления в верхней части <body>, как это:

<script> 
    MySite.settings = { 
    PublishableKey = [here I retreive the env variable]  
    } 
</script> 

А внутри угловых служб, я думал, что я мог бы получить доступ к этому значению, выполнив:

... 
key: MySite.settings.PublishableKey 
... 

Но я получаю ошибка MySite не определена.

Любые предложения?

ответ

6

Ну, вы фактически не определяете MySite, просто свойство этого. Попробуйте это вместо:

<script> 
    var MySite = { 
     settings : { 
      PublishableKey : 'some_key' 
     } 
    }; 
</script> 

Обратите внимание, что я использовал : вместо = установить свойство; это правильный синтаксис здесь.

+0

Это сработало. Почему вы используете '=' после 'MySite', но используя': 'после' settings'? Разве 'settings' не является свойством' MySite', и нам нужно использовать ':' для установки свойств? –

+0

@MikeC с 'MySite =', я устанавливаю переменную. С '{foo: 'bar'}', я инициализирую свойство. Эти два просто используют другой синтаксис. Кстати, не забудьте принять это как ответ! :) –

+0

Спасибо. Узнал что-то новое. –

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