使用:
Meteor 1.1.0.2
铁:路由器1.0.9我正在尝试将数据从路由器传递到模板。所有文档似乎都指向传递为render函数的第二个参数。对于我的生活,我无法让它工作。如果它是布局函数的第二个参数,它确实有效。
阅读后,似乎首选的方法是通过路由器传递数据而不是帮助。另外,我已经全局配置了要使用的模板,因此如果我在Router.config中使用布局,则不会声明layout()。
请纠正任何误解。
所以,这是我的模板HTML:
<div class="col-sm-12 col-md-12">
<P>pageTitle: {{pagetitle}}</P>
</div>
现在我只想要一些静态而不是数据库中find()的结果集。
这是我的router.js中的一个片段。这不符合想法:
Router.route('/tour', function(){
console.log("This is a tour page"); // this works
this.layout('Marketing'); // different than what config calls
this.render('tour', {
data: function(){
return {pagetitle:'Tour12'}; // template does not see this
}
});
},{
name: 'marketing.tour'
});
如果我将其重写为下面的内容,则变量会按预期填充:
Router.route('/tour', function(){
console.log("This is a tour page");
this.layout('Marketing', {
data: function(){
return {pagetitle:'Tour12'};
}
});
this.render('tour');
},{
name: 'marketing.tour'
});
我也尝试将所有params作为对象传递无效(这似乎是传递属性的好方法):
Router.route('/tour',{
name: 'marketing.tour',
layout: 'Marketing',
data: {pagetitle:'Tour12'},
render: 'tour'
});
那么,我做了一些不正确的假设吗?我应该遵循不同/更好的设计模式吗?每次我想传递数据上下文时,我只需要调用this.layout()
吗?好像Router.map()已被折旧(因为很多例子表明这是向模板注入数据的一种方法?进一步的想法?
谢谢。