2015-06-14 25 views
1

我有一些路由器代碼:Meteor Iron Router掛鉤的執行順序是什麼?

Router.route('/box', { 
    name: 'box', 
    action: function(){ 
     this.layout('appWrapperLoggedInTpl'); 
     this.render('boxCanvasTpl'); 
    }, 
    onAfterAction: function(){ 
     console.log("onAfterAction executed!"); 
     renderBoxPage(); 
    } 
}); 

和onRendered功能: 「onAfterAction執行」

Template.boxCanvasTpl.onRendered(function() { 
    console.log('onRendered executed!'); 
}); 

當我運行這一點,出現在「onRendered執行!」之前信息。我會認爲路由器代碼的this.render('boxCanvasTpl');部分會事先執行,這是不是預期的?

回答

2

執行順序正確,但this.render('boxCanvasTpl');需要一段時間才能將模板插入到DOM中。您可能需要將renderBoxPage();轉換爲onRendered函數。

相關問題