我认为这是异步的问题,但我不知道解决方案。
PagesController.buy = function() {
var table="";
Selling.find({}, function(err, res) {
for (var i in res) {
console.log(res[i].addr);
table = table + "res[i].addr";
}
});
this.table = table;
console.log(table);
this.render();
}
我的问题是,如果我尝试在函数外部访问它,this.table=table
将返回undefined,而我无法弄清楚如何在页面上显示该表。
答案 0 :(得分:6)
问题是Selling.find是异步的,并且在执行this.table = table时可能还没有完成。尝试以下内容。
PagesController.buy = function() {
var that = this;
Selling.find({}, function(err, res) {
var table = '';
for (var i in res) {
console.log(res[i].addr);
table = table + res[i].addr;
}
that.table = table;
console.log(table);
that.render();
});
}
这样可以保证在获取结果并填充表格之后才会使用该表。