1

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

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”提供一个过滤器值,通过该过滤器值加载主/父数据。

谢谢,迪

4

1 回答 1

1

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

于 2013-10-01T17:30:52.477 回答