好吧我已经谷歌搜索和谷歌搜索,并找不到任何与我的实际问题有关。Backbone.js路由器历史回到初始页面
基本上我有一个简单的路由器定义了几条路由,如果直接调用,所有这些路由都可以直接由服务器呈现。
所以骨干历史就是这样调用的。
Backbone.history.start({
'pushState': true,
'silent': true
});
然后我有简单的一个非常简单的导航
this.navigate($(event.currentTarget).attr('href'), {
'trigger': true
});
这一切工作正常,除了有一个漏洞。
假设您从网站的主页开始,我没有定义骨干路由,然后单击网站上使用骨干路由器的几个链接,您将被路由到正确的页面和所有内容很好,但是当你点击浏览器的后退按钮回到主页时,你会看到第一条骨干路由的内容,而不是实际的主页内容。
因此,我意识到我需要存储初始页面内容,以便在检测到我返回到与我的路由器中的路由不匹配的初始页面后,我可以将它们重新插入页面,然后从我需要在我的页面的存储版本中重新加载。
所以我想知道这听起来是否正确,或者如果我走错了路,骨干也提供任何东西来帮助这种情况,我只是失踪?我不能成为唯一一个试图这样做的人,那么其他人如何解决这个问题呢?
(起初我以为其实有我的代码有问题,而不是实际上这个根本问题,所以我还是要问这个问题弄清楚其他人如何完成这一点)
我正在处理这个问题,好奇你是否想出了任何解决方案。我正在考虑创建一个特殊的“刷新”路线,在这种情况下将服务器渲染它们。 –
这对我来说听起来很不错。如果我想出更好的东西,我会让你知道的。我目前对其进行了重新编写,以便没有可加载骨干网页的页面首先不会使用骨干网。这不太理想,所以我仍然在寻找更好的解决方案,但至少我可以继续前进,稍后再回来。 – byoungb
是的,我结束了客户端渲染页面,这是一个无赖和奇怪的问题。我想这可能与路由器的“root”有关。也许我需要每个'root'多个路由器(在我的情况下,大多数应用程序都是服务器端渲染的,但有几个流程是客户端,需要后退按钮/ URL支持) –