Backbone.js路由器历史记录返回初始页面

时间:2013-07-16 14:06:51

标签: backbone.js

好吧,我用Google搜索并用Google搜索,找不到与我实际问题有关的任何内容。

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

因此骨干历史就像这样被称为。

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

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

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

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

让我们说你从我没有定义骨干路径的网站主页开始,然后点击网站上使用骨干路由器的几个链接,你将被路由到正确的页面,一切都是很好,但是当你点击浏览器的后退按钮返回主页时,你最终会看到第一条骨干路线的内容而不是实际的主页内容。

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

所以我想知道这听起来是否正确,或者如果我走错了路,骨干网还能提供什么来帮助解决我刚刚错过的这种情况吗?我不可能是唯一一个试图这样做的人,所以其他人如何解决这个问题呢?

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

1 个答案:

答案 0 :(得分:0)

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