动态路径用于流星/铁路由器

Dynamic pathFor on Meteor/Iron Router

本文关键字:路由器 流星 路径 用于 动态      更新时间:2023-09-26

我是流星的新手,我正在尝试为pathFor创建一个动态值。例如,假设我有以下路由:

  • brands.list:它列出了所有笔记本电脑品牌(例如 AppleAcer等(;
  • brands.single :它列出了x品牌的所有笔记本电脑(例如 Macbook ProMacbook Air等(;
  • product.single :显示所选产品。

我想使用相同的list模板列出所有笔记本电脑brandsproducts

{{#each lists}}
  <li><a href="{{pathFor route=listUrl}}">{{title}}</a></li>
{{/each}}

起初,我认为我可以传递一个listUrl值并将其设置为数据上下文中的正确路径,如下所示:

this.layout('AppLayout', {
  data: {
    listUrl: 'product.single',
    lists: Products.find({brand: this.params.slug})
  }
});

这样,我可以在brands.list路线中以brands.single传递listUrl,或者在brands.single路线中传递product.single

但是,它不起作用。关于如何解决这个问题的任何想法?

当您这样做{{#each lists}}时,将尝试在lists的每个项目的上下文中找到listUrl值。因此,您可以将 listUrl 变量放在列表中的每个项目中,也可以像这样访问父上下文:

{{#each lists}}
  <li><a href="{{pathFor route=../listUrl}}">{{title}}</a></li>
{{/each}}