this.redirect只加载空白页面

时间:2015-02-14 17:51:20

标签: meteor iron-router

此代码效果很好

  {
        action: function() {
            this.render('userprofile');
        },
        onBeforeAction: function() {
                this.redirect('/mypage');
        }
    });

但没有这样的

{
    action: function() {
        this.render('userprofile');
    },
    onBeforeAction: function() {
        if (Meteor.user().profile.uname == this.params.uname) {
            this.redirect('/mypage');
            this.stop();
        } else {
            this.next()
        }
    }
});

if (Meteor.user().profile.uname == this.params.uname) {
      this.redirect('/mypage')
} else {
    this.next() 
}

如果输入错误的uname此条件

 } else {
                this.next()
            }

如果是真的

if (Meteor.user().profile.uname == this.params.uname) {
                this.redirect('/mypage');
                this.stop();
            }

页面仅将链接从 / StevePi (正确的uname)更改为 / mypage 但不会渲染

我尝试使用Router.go()和其他方法,但它没有帮助:(

1 个答案:

答案 0 :(得分:0)

我意识到情况就是这样(也许会有所帮助):

Router.route('/:uname', function() {
if (Meteor.user().profile.uname == this.params.uname) {
    window.location.href = "/mypage"; <---------------------------------
} else {
    this.render('userprofile')
}
});