2015-06-18 98 views
-1

獲取流星奇怪的錯誤:流星路由和渲染誤差

路線調度從來沒有顯示。你忘了在onBeforeAction中調用this.next()嗎?

並且沒有內容在我登錄時呈現。相同的代碼庫在我的朋友的機器上工作,這是另一臺MacBook。當他部署代碼時,它可以正常工作,然後我拉他的代碼並部署相同的代碼,並拋出相同的錯誤。你可以在這裏看到http://streetscenestest.meteor.com/,router.js在下面。

我該如何解決這個問題?任何幫助不勝感激。

這裏是我的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('createEvent'); 
}); 

Router.route('/insert', function() { 
    this.render('insertEvent'); 
}); 

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(); 
    } 
    this.next(); 
    }, 
}; 

filters = Router._filters; 
Router.onBeforeAction(filters.hasCompletedProfile); 

回答

0

就做,因爲它說,並呼籲this.next()

Router._filters = { 
    hasCompletedProfile: function() { 
    if (this.ready()) { 
     var user = Meteor.user(); 
     if (user && !userProfileComplete(user)){ 
     this.render('userEmail'); 
     } 
    } 
    this.next(); 
    }, 
}; 
+1

還沒不幸的是工作。我擔心這是與我的設置有關,因爲相同的代碼似乎在我朋友的筆記本電腦上工作正常 –

+0

當你的朋友將同樣的代碼部署到streetscenes.meteor.com時,它會起作用,但是當你這樣做時不會。就好像您的計算機正在更改代碼?奇怪的.. – KindOfGuy