我对这个问题很困惑。 我的模板有两条路径如下:
Router.route('/companyDataManagement',{
path:['/companyDataManagement','/companyDataManagement/:_id'],
name: 'companyDataManagement',
yieldTemplates:{
'companyData':{to:'showCompanyData'},
'companyDetails':{to:'showCompanyDetails'}
}
});
这完全没问题。但是如何将pathFor
用于此模板。
<a href="{{pathFor companyDataManagement}}">Click</a>
不起作用
答案 0 :(得分:0)
您能否确认链接中的companyDataManagement是否是从帮助程序传递的名称,或者您是否打算将其作为所调用路由的名称?如果是后者,则需要将其封装在单引号中,如下所示
<a href="{{pathFor 'companyDataManagement'}}">Click</a>
如果你想将:_id传递给路径这是来自链接所在的数据上下文,如果数据上下文不提供id,你需要声明一个对象传递给帮助器内的模板:
Template.yourTemplate.helpers({
myContextHelper: function(){
return {_id:'XXXXXXXXX'}
}
});
{{#with myContextHelper}}
<a href="{{pathFor 'companyDataManagement'}}">Click</a>
{{/with}}
哪个应该给你/ companyDataManagement / XXXXXXXXX
您还可以使用例如query =&#34; q = 1&#34;来传递查询,散列和数据变量。或query = qstring其中qstring是来自helper的对象或myContextHelper对象中的字段。
<a href="{{pathFor 'companyDataManagement' query=qstring }}">Click</a>
此外并且不严格地处理问题,但希望有用,它从您的代码中看起来就像您只是将:id作为路径中的可选路由部分,并且模板本身不需要:_id到指定,在这种情况下你可以使用?使部件可选:
path:'/companyDataManagement/:_id?',
您也可以将此用作路径的开头参数,以消除必须在函数中指定路径:
Router.route('/companyDataManagement/:_id?',{
希望这有帮助!如果您可以发布更多围绕它的代码,请告诉我以上是否很乐意帮助解决问题