我需要在async函数准备就绪后在iron-router的waitOn参数中返回我的订阅。
这应该是这样的:
this.route('myRoute', {
template : 'myTemplate',
path : '/foo/:param',
waitOn : function () {
MyAsyncFunction(function(this.params.param){
var result = 'whatever';
return Meteor.subscribe('MyCollection', result);
});
},
data : function () {
return MyCollection.find().fetch()
}
});
使用铁制路由器解决此问题的最佳方法是什么?我正在寻找推荐的解决方案。
答案 0 :(得分:0)
您可以从MyAsyncFunction
挂钩运行onRun
并使用它来设置将触发订阅更新的反应变量。
this.route('myRoute', {
template : 'myTemplate',
path : '/foo/:param',
onRun: function () {
MyAsyncFunction(function(this.params.param){
Session.set('result', 'whatever');
});
},
waitOn : function () {
return Meteor.subscribe('MyCollection', Session.get('result'));
},
data : function () {
return MyCollection.find().fetch()
}
});
当参数更改时,onRun
挂钩将重新运行。