javascript - 如何检测Backbone.History Referer(历史长度)

标签 javascript backbone.js browser-history backbone-routing

我正在开发一个具有多个 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/

相关文章:

javascript - 任何拉伸(stretch)背景图像的方法

javascript - 无法使用backbone.js从mongodb数据库中删除记录

javascript - get 中显示的 Backbone 上一个属性

react-router - React Router v4 - 如何检测后退按钮导航与 url 刷新?

javascript - 如何在异步页面加载时更改导航 url

Javascript垃圾收集具有相同变量的新对象

javascript - 如何使用 PHP 弹出警告消息框?

javascript - 在 Jest 中测试回调

javascript - mootools 是 jquery +backbone/spine/sprouteCore 的替代品

javascript - 三星智能电视应用程序浏览历史记录