Meteor - 如何从其他JS文件调用外部类方法?

时间:2015-02-25 11:10:37

标签: javascript oop meteor instantiation

我是流星的新手。我一直在尝试将我的流星代码写成“面向对象的方式”,所以我为我的Parser创建了一个名为Message的对象,并从我的app.js中调用了它的方法。

我想实例化该对象并从我的app.js调用我的Message.JS中定义的方法?

应用程序结构

App
    | --app.html
    | --app.js
    | --app.css
    | --message.js
    | - 。meteor

message.js

  var Message = {


    init: function( message ){

   /* Initialization function with some properties */

   }

  getHash: function() {
    return this.hash_table;
   }

  parseMessage: function(input) {

 /* Some Parsing logic */

  return(hash_table);
 }
 }

app.js

if (Meteor.isServer) {

 var msg = new Message.init(response);
 var hash =  msg.getHash();
 console.log(hash);

}

2 个答案:

答案 0 :(得分:2)

使用var声明的变量在Meteor中具有文件范围,并且无法从其他文件中访问。 如果你声明变量没有var,它将有更大的范围,可以在你的应用程序中看到,

Message = {
    ...
}

如果这不起作用,您可能会遇到加载顺序问题。应该在调用app.js中的代码之前加载message.js中的代码。为了确保它,将message.js放在/ lib文件夹中。此文件夹中的文件始终先加载。

答案 1 :(得分:0)

将message.js添加到名为lib的文件夹中,以便在流星开始时首先加载http://docs.meteor.com/#/full/examplefilestructure。然后从Message中删除var,使其变为全局。