我有中有一个参数的路线,我需要从许多不同的模板访问。 下面是路由的一个例子,有几个途径是只是它改变了_occasionnId参数之后很相似:
例如:
路线1:/次/:_ occasionId /卡/
路由器2:/次/:_ occasionId /表/
这是我为每个路由完整的代码,真正唯一改变的是路由路径和模板。
Router.route('/occasions/:_occasionId/cards/', {
template: 'cards',
data: function(){
//var currentoccasion = this.params._occasionId;
//console.log(currentoccasion);
},subscriptions : function(){
Meteor.subscribe('cards');
Meteor.subscribe('tables');
}
});
我需要得到_occasionId参数到具有导航它出现在所有这些页面的模板。 我的目标是,从1号线,你可以到路由器2,但我无法弄清楚如何添加正确的URL模板。
我的模板是:
<template name="occasionnav">
<nav>
<div class="nav-wrapper">
<ul class="right hide-on-med-and-down">
<li><a href="/occasions/:_occasionId/cards/">cards</a></li>
<li><a href="/occasions/:_occasionnId/tables/">tables</a></li>
</ul>
</div>
</nav>
</template>
在由“occasionnav”模板“:_occasionId”我需要的是相同的参数作为当前正在浏览的页面刺入这里。
如果任何人有最好的方式任何见解或意见,以接近这一点,我真的很感激它。
我建议使用{{pathFor}}
如果要呈现在你的应用程序流星内部路由。
你只需要设置正确的上下文和命名的路线,例如:
<template name="occasionnav">
<nav>
<div class="nav-wrapper">
<ul class="right hide-on-med-and-down">
{{#with occasion}}
<li><a href="{{pathFor route='occasions.cards'}}">cards</a></li>
<li><a href="{{pathFor route='occasions.tables'}}">tables</a></li>
{{/with}}
</ul>
</div>
</nav>
</template>
Router.route('/occasions/:_id/cards/', {
template: 'cards',
name: 'occasions.cards',
data: function() {
return Cards.findOne({_id: this.params._id});
},
subscriptions: function() {
return Meteor.subscribe('cards', this.params._id);
}
});
Router.route('/occasions/:_id/tables/', {
template: 'tables',
name: 'occasions.tables',
data: function() {
return Tables.findOne({_id: this.params._id});
},
subscriptions: function() {
return Meteor.subscribe('tables', this.params._id);
}
});
但是,您也可以通过获得模板的路由器参数Router.current().params
。
您可以通过_occasionId为模板助手,呈现在玉,如:
<li><a href="/occasions/{{_occasionId}}/cards/">cards</a></li>
你应该试试 :
Router.route('/occasions/:_occasionId/cards/', function() {
this.layout("LayoutName");
this.render("cards", {
data: {
currentoccasion = this.params._occasionId;
}
});
});
当您使用Router.map,这是不完全一样的语法:
Router.map(function() {
this.route('<template name>', {
path: 'path/:_currentoccasion',
data: function () {
return {
currentoccasion: this.params._currentoccasion
}
}
});
您可以访问,就像在你的模板:
Like an helper
{{ currentoccasion }}
Or on the onRendered and onCreated functions
Template.<template name>.onRendered({
this.data.currentoccasion