我是流星的新手。我一直在尝试将我的流星代码写成“面向对象的方式”,所以我为我的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);
}
答案 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,使其变为全局。