2015-07-03 4 views
1

У меня есть файл javascript, который я помещаю в папку client/lib в моем приложении Meteor. По мере увеличения файла я решил разбить его на 3 файла и определить объект «Приложение» в глобальном пространстве имен, чтобы эти 3 файла могли делиться данными.Обмен глобальными переменными между файлами javascript, загруженными в Meteor

Каждый файл начинается с

var app = app || {}; 

(function() { 
    'use strict'; 

    app.object1 = { 

Таким образом, file2 и file3 все еще может использовать app.object1, и так далее.

Проблема заключается в том, что Meteor загружает файлы, они, как представляется, автоматически обертывают ее функцией() {}, и это делает app.object1 недоступным из файлов, загруженных впоследствии.

(function(){ 
    var app = app || {}; 

    (function() { 
    'use strict'; 

    app.object1 = { 

Каков наилучший способ избежать этой проблемы? Благодарю.

EDIT: Я ссылался на эту публикацию [ссылка:] [1] Global variables in Meteor, которая предлагает определить переменную без «var». Я заменил код в файле1 на app = {}, но мое приложение теперь сбой в файле2 в следующей строке кода, с сообщением от консоли Meteor, вставленной ниже.

app.ALL_LIST = 'all' 

=> Ваше приложение сбой. Ожидание изменения файла. ReferenceError: приложение не определено

+0

Возможный дубликат [Глобальные переменные в Метеор] (http://stackoverflow.com/questions/27509125/global-variables-in-meteor) –

+0

Спасибо за полезную ссылку. Затем следуйте инструкциям в этой ссылке и создайте пакет, который экспортирует глобальную переменную. Теперь это работает. –

ответ

1

omit var в объявлении переменной;), тогда он будет отображаться в глобальном масштабе.

+1

Полезно для пространств имен ваших глобалов: https://medium.com/@sirchill3/meteor-managing-the-global-namespace-5a50080a05ea – ryascl

+0

Отличная статья, спасибо за добавление. –

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