Emberjs-如何在没有父路线内容的情况下呈现嵌套路线模板?

时间:2019-11-28 22:39:03

标签: ember.js routing

摘要

我想继续使用嵌套路由,但是在访问嵌套路由时不显示顶级内容。我不确定这有可能吗?

详细信息

最初,我的要求是显示食物清单,并为用户提供添加食物foods/add的选项。使用列表模板顶部的outlet标签可以使表单添加食品,使其在列表顶部可见,在添加导致显示列表后过渡回food没有表格。

新要求

现在需求已更改,有必要显示不包含列表内容的表单,并在成功添加后显示不包含任何表单的列表。

问题

我知道我可以放弃子路由方法并创建诸如food-add之类的路由,但是还有其他方法可以保留子路由(以及我喜欢的相应文件结构),但是允许foods/add的要呈现的模板而不包含列表内容?

1 个答案:

答案 0 :(得分:2)

每个路由都有一个索引模板,该索引模板仅在不存在子路由时可见。

您可以执行以下操作:

index.hbs

{{#each foods as |food|}}
  {{food}}
{{/each}}

<LinkTo @route="food.add">Add</LinkTo>

food / add.hbs

<form>
  ...
</form>

{{!-- submitting this form would add the new food to the list of foods
      and then also transition back to `food` --}}

有关索引路由如何工作的更多信息

https://guides.emberjs.com/release/routing/defining-your-routes/#toc_nested-routes

https://guides.emberjs.com/release/routing/defining-your-routes/#toc_index-routes