this.next() error in Meteor Iron Router
this.next() error in Meteor Iron Router
在Meteor中出现奇怪的错误:
路由调度从未呈现。你忘记在onBeforeAction中调用this.next()了吗?
,没有任何内容正在呈现。我该如何解决这个问题?非常感谢任何帮助。
这是我的router.js
Router.configure({
layoutTemplate: 'layout',
});
Router.route('/', function() {
this.render('home');
});
Router.route('/user/:_username', {
name: 'user_profile',
data: function() { return Meteor.user();}
});
Router.route('/create', function() {
this.render('create_event');
});
Router.route('/events/:name', {
name: 'event',
data: function() { return Events.findOne({name: this.params.name});}
});
Router.route('/useremail', function() {
this.render('userEmail');
}, {
name: 'userEmail'
});
Router._filters = {
hasCompletedProfile: function() {
if(!this.ready()) return;
var user = Meteor.user();
if (user && ! userProfileComplete(user)){
this.render('userEmail');
} else {
this.next();
}
},
};
filters = Router._filters;
Router.onBeforeAction(filters.hasCompletedProfile);
确保您总是在Router._filters
方法中调用this.next();
,而不仅仅是在一个条件下。
试着用这个代替你的Router._filters
方法:
Router._filters = {
hasCompletedProfile: function() {
if(!this.ready()) return;
var user = Meteor.user();
if (user && ! userProfileComplete(user)){
this.render('userEmail');
}
this.next(); // Take note, it is no longer in an else statement
},
};
相关文章:
- 如何使用Iron Router在Meteor中生成XML文件
- Meteor iron:路由器this.render()正在BeforeAction钩子中阻塞
- Meteor Iron路由器通过[data]vs[params]访问变量
- Meteor,Iron Router,&谷歌分析嵌入API
- Meteor/Iron路由器-何时何地运行JS以交换到所见即所得
- 如何在Meteor Iron路由器的内部模板中访问全局数据
- Iron Router,Meteor 应用程序崩溃时 router.js 被放置在 /lib 中
- Meteor Iron路由器如何获取POST数据
- Meteor iron路由器中的next()对此完全困惑
- Meteor/Iron路由器-在{{#each}}循环中获取父数据
- 如何在Meteor Iron路由器中的一条路由中不显示默认模板
- Meteor Iron:路由器加载空白页
- 在常规JS文件中使用Meteor Iron Router数据上下文
- Meteor/Iron Router中的named yield发生了什么?
- 在发布中使用Meteor. _sleepforms()时,Meteor: Iron路由器不显示加载模板
- Meteor Iron路由器数据来自参数点击
- Meteor Iron路由器没有'如果数据返回null/undefined,则不调用onBeforeAction
- Meteor: iron route's url参数问题
- this.next() error in Meteor Iron Router
- 如何使用Meteor Iron Router获得当前路由的名称?