单击浏览器后退/前进按钮时,子模板在ember中的错误路径中呈现

时间:2013-10-01 17:15:35

标签: ember.js

当我点击浏览器后退/前进按钮时,我的一个子模板在所有路径/链接中呈现。我的路线定义为:

this.resource('analytics', {path: '/analytics'}, function(){
    this.resource('analyticsRuns', {path: ':exerciseRunId/analyticsRuns'},function(){
        this.resource('analyticsRun',{path: ':runId'});
    });
});

我的模板如下:

<script type="text/x-handlebars" data-template-name="analytics">
{{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="analytics/index">
some content in analytics index
</script>

<script type="text/x-handlebars" data-template-name="analyticsRuns">
{{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="analyticsRuns/index">
some content in analytics runs index
</script>

<script type="text/x-handlebars" data-template-name="analyticsRun">
some content in analytics run index
</script>

我的模板比这些更复杂,但我想告诉你我面临的问题。因此,当我从分析转向analyticsRuns并返回浏览器时,就没有问题,但是当我从分析中走出来时 - &gt; analyticsRuns - &gt; analyticsRun然后使用浏览器后退按钮返回分析,analyticsRun模板在呈现分析模板后显示。现在,如果我转发,analyticsRuns模板似乎会附加在所有其他路由中。我不确定我是否定义了导致此问题的把手错误,或者问题可能在其他地方。但如果您对如何避免这个问题有任何建议,那么我会非常感激。

在我的应用设置中,“analytics”实际上并不是父资源。 Analytics只为“analyticsRuns”提供过滤器值,用于加载主数据/父数据。

谢谢, DEE

1 个答案:

答案 0 :(得分:1)

我不知道这对其他人是否有帮助,但在我的情况下,问题是由于HTML标记错误(我错过了其中一个模板中的结束div)。