2017-03-21 155 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/的例子 –