我在onRendered
事件中有一些功能,我想在每次渲染时运行。
Template.DashboardCoachPost.onRendered(function () {
var post, postId;
this.autorun(function() {
postId = Router.current().params.query.p;
reactive.isSubmitted.set(false);
if (Template.instance().subscriptionsReady()) {
post = Posts.find({_id: postId}).fetch()[0];
reactive.post.set(post);
if (post) {
reactive.isSubmitted.set(true);
}
}
});
});
在我的RouterController中,我有:
DashboardCoachPostController = RouteController.extend({
subscriptions: function() {
this.postId = Router.current().params.query.p;
if (this.handle) {
this.handle.stop();
}
if (this.postId) {
this.handle = this.subscribe('posts', { postId: this.postId });
}
}
});
和我的路线:
Router.route('/dashboard/coach/post', {
name: 'dashboardCoachPost',
controller: DashboardCoachPostController,
where: 'client',
layoutTemplate: 'LegalLayout'
});
我觉得我没有正确处理订阅,但我无法弄清楚如何在没有这种方法的情况下收到我的帖子。
答案 0 :(得分:1)
Template.instance().subscriptionsReady()
。但你是subscribing in the router。
您必须选择是否让模板实例处理订阅或路由器。