为铁路由器流星的路径



我对这个问题很困惑。我有一个模板,它有两个路径如下:

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

这工作得很好。但是我如何在这个模板中使用pathFor<a href="{{pathFor companyDataManagement}}">Click</a>不工作

您是否可以确认链接中的companydatammanagement是从helper传递的名称,或者您是否打算将其作为所调用路由的名称?如果是后者,则需要将其封装在单引号中,如

<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}}

应该是/companydatammanagement/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?',{

希望这对你有帮助!让我知道,如果上面的工作不高兴帮助解决问题,如果你可以张贴更多的代码围绕它

最新更新