2017-03-21 199 views
0

在我IronRouter.js文件我不得不這樣規定的家鄉路線:如何轉換此路由器路由?

Router.route('/', { 
     name: 'home', 
     waitOn: function() { 
     return [ 
      Meteor.subscribe('infosContainers'), 
      Meteor.subscribe('infosMachines'), 
      Meteor.subscribe('alertes'), 
     ]; 
     }, 
     fastRender: true, 
    }); 

然後我想將其轉換成這種定義,但waitOn不工作,並創建了一個錯誤:

Router.route('/', function(){ 
    this.layout('layout'); 
    this.render('home'); 
    this.next(); 
    waitOn: function() { 
    return [ 
     Meteor.subscribe('infosContainers'), 
     Meteor.subscribe('infosMachines'), 
     Meteor.subscribe('alertes'), 
    ]; 
    }; 
    fastRender: true; 
}); 

那麼如何將它轉換成第二個定義?

回答

1

你把waitOn屬性函數的聲明,這是絕對錯誤的JavaScript語法,將其轉換爲這樣的內部:

Router.route('/', { 
    fastRender: true, 
    subscriptions: function() { 
    return [ 
     Meteor.subscribe('infosContainers'), 
     Meteor.subscribe('infosMachines'), 
     Meteor.subscribe('alertes'), 
    ]; 
    }, 
    action: function() { 
    if (this.ready()) { 
     this.layout('layout'); 
     this.render('home'); 
    } 
    } 
}); 

鐵路由器指南:http://iron-meteor.github.io/iron-router/

+0

謝謝你的回答,但AREN的認購這樣工作,你能幫我嗎? – Jerome

+0

@Jerome我剛剛對代碼進行了修改,但您錯過了對'this.ready()'的檢查,並且只有在您希望請求被下一個匹配路由器處理時才調用this.next() –

+0

@Jerome這個指南應該會向你展示很多啓動http://iron-meteor.github.io/iron-router/的例子 –