1

好的,我用谷歌搜索和搜索,找不到与我的实际问题相关的任何内容。

基本上我有一个简单的路由器,其中定义了一些路由,如果直接调用,所有这些路由都可以由服务器直接呈现。

所以主干历史是这样称呼的。

Backbone.history.start({
    'pushState': true,
    'silent': true
});

然后我有一个简单的非常简单的导航

this.navigate($(event.currentTarget).attr('href'), {
    'trigger': true
});

除了一个缺陷外,这一切都正常工作。

假设您从我没有为其定义主干路由的站点的主页开始,然后单击站点上使用主干路由器的一些链接,您将被路由到正确的页面,一切都很好,但是然后,当您单击浏览器的后退按钮返回主页时,您最终会看到第一个主干路由的内容,而不是实际主页的内容。

所以我意识到我需要存储初始页面内容,以便一旦我检测到我回到与路由器中的路由不匹配的初始页面,我就可以将它们重新插入页面,然后从那里我需要在我的页面的存储版本中重新加载。

所以我想知道这听起来是否正确,或者我是否走错了路,主干是否也能提供任何帮助解决我刚刚错过的情况?而且我不能是唯一一个尝试这样做的人,那么其他人是如何解决这个问题的?

(最初我认为我的代码实际上存在问题,而不是这个根本问题,所以我仍然想问这个问题以弄清楚其他人是如何做到这一点的)

4

1 回答 1

0

您需要为主页定义一个路由。发生的情况是,每次您点击链接时,当前 URL 都会被推送到pushState的堆栈中,并且每次您点击后退按钮时,前一个 URL 都会弹出,并且 Backbone 会尝试遵循其路线。但是,当您弹出主页 URL 时,它没有匹配的路由,因此 Backbone 实际上并没有做任何事情,将内容保留为最后一次真正匹配的路由。

于 2013-07-16T14:12:34.213 回答