【问题标题】:How to detect Backbone.History referer (history length)如何检测Backbone.History referer(历史长度)
【发布时间】:2013-07-13 01:29:24
【问题描述】:

我正在开发一个具有多个视图、集合等的 Backbone 应用程序。 它还有一个可以很好地处理永久 URL 的路由器。

我想要实现的是创建一个“返回”按钮,允许用户在可用时返回 window.history(-1) 到前一个视图(用户之前来自该视图)。如果没有,“返回”按钮将指向主页。

基本上,我需要检查 Backbone 是否在其历史记录中保存了可以用来回滚一步的内容。如果历史记录为空(我们直接导航到此 URL),则返回主路由器。

我已经尝试过使用window.hisory.length,但它永远不会为空。它可能仍然指向浏览器的起始主页或浏览器的空白打开页面。

Backbone.History 是否跟踪通过它的 URL(哈希)? 如果是,我如何访问它。我已经尝试过控制台记录 Backbone.History,但没有找到任何我可以坚持的东西。

感谢任何帮助/建议。

【问题讨论】:

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


    【解决方案1】:

    您可以执行以下操作:

    路由器初始化函数 -

    this.on("all", this.storeRoute);
    this.history = [];
    

    然后是storeRoute函数(也在router中)——

    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()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多