32

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

4

2 回答 2

52

正如 avital 所建议的,使用全局定义的变量会起作用,但不是推荐的代码设计选择(请参阅此处列出的 JS 错误 1)。

相反,您lib可以在您的目录中创建一个文件:

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

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

于 2014-01-19T03:24:59.860 回答
47

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

用 定义的函数function foo() { ... }是文件的本地函数,用 定义的变量也是如此var bar = ...

于 2013-05-14T04:06:42.337 回答