Ember.js:标头的最佳实践取决于子路由

时间:2015-03-11 03:10:42

标签: ember.js

假设我的路线A有子路线A1和A2。所有页面上都有一个标题基本相同,但根据它的A1和A2是否有所不同。

最明显的想法是将标题放在A&#39的模板中,如

{{! header here }}
{{outlet}}

但是,在生成此标题的时间点,我不知道我是在A2还是A2上。所以我需要手动检查URL或路由以查看我的位置,如

isA1: Ember.computed.equal('application.currentRoute', 'A.A1')

并在标题模板中

{{#if isA1}} {{! A1-specific stuff }} {{/if}}

但这似乎很脆弱。

另一种方法是跳过将标题放在A/template中并将其转换为部分名称,其中包含某种参数,来自A1/templateA2/template。这样可以正常工作,但是很遗憾没有利用Ember能够在父路线模板中指定标记并引入子路线'通过{{outlet}}标记。如果这很重要,当我在A1和A2之间切换时,这也会导致重新呈现标题。

另一个想法是让子路线"发送"对其父请求某事的动作应包含在其标题中。

我已经看到所有这些方法都被采用了,但是对于这种情况有没有更惯用的东西?

1 个答案:

答案 0 :(得分:1)

您可以不将标题放在A/template中,并且只有{{outlet}},并在A1/template和A2&#39}中包含A1标题A2/template