【发布时间】:2016-04-10 13:21:18
【问题描述】:
我设置了一个/user 路由,如果当前用户未登录,它应该呈现login 模板。整个路由器有一个waitOn 等待currentUser 订阅结束。问题是当我转到/user 时,它只是呈现dataNotFound 模板。
这是与这种情况相关的代码的 sn-ps。我一直小心翼翼地按照我在lib/router.js 文件中定义的顺序向您展示它们。
Router.plugin('dataNotFound', {notFoundTemplate: 'notFound'});
Router.onBeforeAction(function () {
console.log(Meteor.userId())
if (!Meteor.userId()) this.render('login');
else this.next();
}, { only: ['user'] });
Router.configure({
waitOn: function () { return Meteor.subscribe('currentUser'); }
});
Router.route('/user', {
name: 'user',
template: 'userView',
data: function () { return Meteor.user(); }
});
上面的console.log 甚至都不会触发。在我看来,既然它应该是一个反应函数,即使最初渲染了 dataNotFound,那么不久之后应该触发 onBeforeAction 并渲染 login 模板,对吧?
【问题讨论】:
标签: meteor iron-router