使用Meteor从单独的文件中调用函数

时间:2013-05-14 02:54:37

标签: function meteor file-structure

我想在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上不同文件中的资源?

2 个答案:

答案 0 :(得分:52)

使用全局定义的变量(如avital建议的那样)可行,但不是推荐的代码设计选择(see JS mistake 1 listed here)。

而是在lib目录中,您可以创建一个文件:

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

然后在任何其他js文件中,您可以调用Meteor.myFunctions.makeBoard()。这应该在lib目录中完成,因为Meteor保证lib中的js文件在其他目录之前加载,因此你的函数已经被加载了。

答案 1 :(得分:46)

使用makeBoard = function() { ... }定义函数。

使用function foo() { ... }定义的函数是文件的本地函数,以及使用var bar = ...定义的变量。