【发布时间】:2015-07-07 12:57:45
【问题描述】:
我希望在网站呈现所有数据之前出现加载模板。
在服务器端方法通过 Meteor.call 给我数据(来自 API [异步])之后,我想加载正确的布局。
我尝试了许多在 Google 上找到的描述类似但不完全相同的问题的方法。包括使用准备好的句柄定义函数的方式,也不起作用。我无法让它运行。
我不想使用集合,因为这是用户特定的数据。(我认为为每个用户[没有登录的用户]创建一个集合效率不高,或者我错过了什么)这可能吗?
这是我的代码。控制台在 1 之前记录 2。
Router.route('/search/:term',{
name: 'search',
loadingTemplate: 'loading',
waitOn : function(){
var term = this.params.term;
//i think here has be something differnet either with return subscribe or function with ready-handle
Meteor.call('search',term,function(err, response) {
Session.set('shops', response);
console.log(1);
});
},
action : function(){
console.log(2);
this.render();
}
});
Template.search.helpers(
{
"shops" : function(){
return Session.get('shops');
}
}
);
服务器端方法返回一个数组。
感谢您的帮助
【问题讨论】:
-
现在,由于您没有从
waitOn返回带有就绪函数的句柄,action将立即执行。您是否仍有代码返回带有您尝试过的准备好的句柄的函数? -
No .. 当我这样做并检查操作方法中的 this.ready() 是否始终为真并且它触发/重新运行无限时
标签: meteor loading iron-router