Iron Router模板未在重定向上注册

时间:2014-09-08 17:05:17

标签: meteor iron-router

我有这个简单的检查用户是否已登录,如果没有 - 重定向到注册页面

Router.map(function () {
  this.route('home', {
    path: '/',
    onBeforeAction: function (pause) {
      if (!Meteor.user()) {
        this.render('register');
        pause();
      }
    }
  });

  this.route('register', {path: '/register'});
});

获得

Exception from Tracker recompute function: Error: Couldn't find a template named "register" or "register". Are you sure you defined it?

当我直接进入/register时,它确实有效。

任何想法为什么?

2 个答案:

答案 0 :(得分:3)

this.render模板名称作为参数,不是 路线名称

  

this.render('templateName'):渲染名为'templateName'的模板   进入主要收益率{{>产量}}

Source

this.render("register")替换为Router.go('register')

检查用户是否处于登录状态也是有益的:

    if (!(Meteor.loggingIn() || Meteor.user())) {
        console.log("User is not logged in");
        Router.go("register");
        pause()
    }

答案 1 :(得分:0)

要创建我使用em工具的模板,当我em g:route register时,它命名模板Register - 使用大写R

在渲染中重命名:this.render('Register');就可以了。