当我单击浏览器后退/前进按钮时,我的一个子模板正在所有路由/链接中呈现。我的路线定义为:
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>
我的模板比这些更复杂,但我想给你一个我面临的问题的要点。因此,当我从 analytics 转到 analyticsRuns 并返回 browser back 时,没有问题,但是当我从 analytics -> analyticsRuns -> analyticsRun 然后使用 browser back 按钮返回到 analytics 时,analyticsRuns 模板会在分析后显示模板被渲染。现在,如果我继续前进,analyticsRuns 模板似乎已附加到所有其他路线中。我不确定我是否错误地定义了导致此问题的车把,或者问题可能出在其他地方。但是,如果您对如何避免此问题有任何建议,我将不胜感激。
在我的应用设置中,“分析”实际上并不是父资源。Analytics 仅向“analyticsRuns”提供一个过滤器值,通过该过滤器值加载主/父数据。
谢谢,迪