您能否确认链接中的companyDataManagement是从帮助程序传递的名称,还是您打算将其作为路由调用的名称?如果是后者,则需要像下面一样用单引号括起来。
<a href="{{pathFor 'companyDataManagement'}}">Click</a>
如果你想把 :_id 传递到 pathFor 中,那么它来自于链接所在的数据上下文。如果数据上下文没有提供所需的 id,你需要声明一个对象,在 helper 中将其传递到模板中。
Template.yourTemplate.helpers({
myContextHelper: function(){
return {_id:'XXXXXXXXX'}
}
});
{{#with myContextHelper}}
<a href="{{pathFor 'companyDataManagement'}}">Click</a>
{{/with}}
这应该给你 /companyDataManagement/XXXXXXXXX
你也可以通过例如 query="q=1" 或 query=qstring 的方式传递查询、哈希和数据变量,其中 qstring 是来自 helper 或 myContextHelper 对象中的对象或字段。
<a href="{{pathFor 'companyDataManagement' query=qstring }}">Click</a>
此外,与问题不严格相关但希望有所帮助的是,从您的代码中看来,您只是将:id作为路径中的可选路由部分,并且模板本身不需要指定:_id,这种情况下,您可以使用?使该部分变为可选项:
path:'/companyDataManagement/:_id?',
你也可以将此用作路由的开头参数,以消除在函数中指定路径的需要:
Router.route('/companyDataManagement/:_id?',{
希望这可以帮到你!如果上述方法不起作用,请告诉我,我很乐意帮助你进行故障排除,如果你能发布一些相关代码的话。
Router.route('/companyDataManagement/:_id',{}
和<a href="{{pathFor companyDataManagement _id=this._id}}">Click</a>
怎么样?因此,基本上要这样做:http://stackoverflow.com/questions/30467393/meteor-with-iron-route-pathfor - Dan