我正在开发一个具有多个 View 、集合等的 Backbone 应用程序。 它还有一个可以很好地处理永久 URL 的路由器。
我想要实现的是创建一个“后退”按钮,允许用户在可用时返回 window.history(-1)
到上一个 View (用户来自该 View )查看较早)。如果没有,“后退”按钮将返回主页。
基本上,我需要检查 Backbone 是否在其历史记录中保存了一些内容,我可以用它来回滚一步。如果历史记录为空(我们直接导航到此 URL),则返回指向主路由器。
我已经尝试使用window.hisory.length
,但它永远不会为空。它可能仍然指向浏览器的起始主页或浏览器的空白打开页面。
Backbone.History 是否跟踪通过它的 URL(哈希值)?如果是这样 - 我如何访问它。我已经尝试过控制台日志记录 Backbone.History 但没有找到任何可以保留的内容。
感谢任何帮助/建议。
最佳答案
您可以执行以下操作:
路由器初始化函数 -
this.on("all", this.storeRoute);
this.history = [];
然后是 storeRoute 函数(也在路由器中)-
storeRoute: function() {
return this.history.push(Backbone.history.fragment);
}
路由器中的也 -
previous: function(){
if (this.history.length > 1) {
return this.navigate(this.history[this.history.length - 2], true);
}
}
因此,您可以随时调用yourApp.router.previous()
!
关于javascript - 如何检测Backbone.History Referer(历史长度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17649913/