Подтвердить что ты не робот

Функции вызова из отдельных файлов с помощью Meteor

Я хочу создать приложение в Meteor, из того, что я понимаю в руководстве, которое он загружает сначала поддиректории, а затем следует алфавитный порядок. Моя файловая структура похожа на это...

/server
/lib
/client
    /lib
        game.js -> already starts declaring the function "makeBoard(){}"
    /template.js -> where the function "makeBoard()" is called.

таким образом, кажется, что функция ошибки "makeBoard()" не существует, работает только, если я объявляю в том же файле, где я хочу ее назвать. Даже когда я перемещаю файл "game.js" в тот же каталог, где "template.js", это происходит. Как я должен правильно ссылаться на ресурсы, которые находятся в разных файлах на Meteor?

4b9b3361

Ответ 1

Определите функцию с помощью makeBoard = function() { ... }.

Функции, определенные с помощью function foo() { ... }, являются локальными для файла, как и переменные, определенные с помощью var bar = ....

Ответ 2

Используя глобально определенную переменную, как предполагает avital, будет работать, но это не рекомендуемый вариант дизайна кода (см. ошибку JS 1, указанную здесь).

Вместо этого в вашем каталоге lib вы можете создать файл с помощью

Meteor.myFunctions = {
...
    makeBoard : function() { ... },
...
}

Затем в любом другом js файле вы можете вызвать Meteor.myFunctions.makeBoard(). Это должно быть сделано в каталоге lib, потому что Meteor гарантирует, что файлы js в lib загружаются перед другими каталогами, поэтому ваша функция уже будет загружена.