路径为铁路由器流星

时间:2015-05-28 13:30:54

标签: javascript meteor iron-router

我对这个问题很困惑。 我的模板有两条路径如下:

Router.route('/companyDataManagement',{
        path:['/companyDataManagement','/companyDataManagement/:_id'],
        name: 'companyDataManagement',
        yieldTemplates:{
            'companyData':{to:'showCompanyData'},
            'companyDetails':{to:'showCompanyDetails'}
        }
});

这完全没问题。但是如何将pathFor用于此模板。 <a href="{{pathFor companyDataManagement}}">Click</a>不起作用

1 个答案:

答案 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?',{

希望这有帮助!如果您可以发布更多围绕它的代码,请告诉我以上是否很乐意帮助解决问题