2017-09-11 3 views
0

Routes.js:Router.go nicht umleiten nicht in Template.events

Router.configure({ 
    layoutTemplate: "defaultLayout", 
    before: function() { 
    if(!Meteor.user()) { 
     this.layout("loginLayout"); 
     this.render('login'); 
    }else{ 
     this.layout("defaultLayout"); 
     this.next(); 
    } 
    } 
}); 

Router.route('/',function(){ 
    this.render('login'); 
    this.layout('loginLayout'); 
}); 

Router.route('/botlist',{ 
    template: "projects", 
    name: "projects", 
    data: function(){ 
    return Projects.find({}); 
    },  
    waitOn: function(){ 
    return Meteor.subscribe('projects',Session.get("username")); 
    } 
}); 

Ich habe eine Login-Seite, deren js wie folgt aussieht:

.... 
    'click #btn-login'(e, t) { 
    var username = $('#email').val(),password = $('#password').val(); 
    Meteor.call('loginWithad',username,password,function(err,response){ 
     if(response.err){ 
     ..    } 
     else{ 
     Meteor.call('finishLogin',username,password,function(err,res){ 
      if(err){ 
      ... 
      } 
      else{ 
      Session.set("username",res.givenName); 
      Router.go("/botlist"); //--> this router.go doesn't route to /botlist template       
      } 
     }) 
     .... 

Jede Ausgabe auf meinem Router Definition? Ich habe mehrere Lösungen keine versucht gearbeitet:

  1. this.redirect()
  2. Router.push
  3. this.stop() dann Router.go()

Antwort

0

Sie müssen den Namen der Route als Parameter geben. Also:

Änderung

Router.go("/botlist"); 

in

Router.go("projects");