我认为这是异步的问题,但我不知道解决方案。
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,并且我不知道如何在页面上显示表格。
this.table=table
问题是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(); }); }
这将确保在获取结果并填充表之后才使用表。