假设我的路线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/template
和A2/template
。这样可以正常工作,但是很遗憾没有利用Ember能够在父路线模板中指定标记并引入子路线'通过{{outlet}}
标记。如果这很重要,当我在A1和A2之间切换时,这也会导致重新呈现标题。
另一个想法是让子路线"发送"对其父请求某事的动作应包含在其标题中。
我已经看到所有这些方法都被采用了,但是对于这种情况有没有更惯用的东西?
答案 0 :(得分:1)
您可以不将标题放在A/template
中,并且只有{{outlet}}
,并在A1/template
和A2&#39}中包含A1标题A2/template
。