在主干应用程序中获取以前的路由器/url

Posted

技术标签:

【中文标题】在主干应用程序中获取以前的路由器/url【英文标题】:Get previous router/url in backbone application 【发布时间】:2013-09-15 02:51:14 【问题描述】:

我有一个主干应用程序,我需要知道访问当前路由的路由器。有可能吗?

例如:-

我从#/test1 到达#/current,在另一个例子中,我从#/test1 到达。

那么我可以通过某种方式来检测之前的路由器命中吗?

我用过:

Backbone.history.fragment

这只会给我当前访问的路线,而不是从哪条路线。

【问题讨论】:

【参考方案1】:

您可以将历史记录存储在某个数组中,并对最后/上一个项目进行一些操作。

var history = [];
this.listenTo(this, 'route', function (name, args) 
  history.push(
    name : name,
    args : args,
    fragment : Backbone.history.fragment
  );
  console.log(history);
);

【讨论】:

好的,我有一段时间回来了,但我正在考虑任何内置的方式来检测主干历史。我想我必须手动这样做 我会让这个问题再开放 2-3 天,只是为了知道是否还有其他方法可以让其他人解决这个问题。谢谢@Vitaliy Petrychuk @VitaliyPetrychuk 我有点喜欢这种方法,但我应该在哪里运行这个 sn-p?在视图中?在路由器中?你有什么建议? @darksoulsong,我建议对这个 sn-p 使用 Controller。 Backbone 没有它,但您可以创建它,或者如果您使用 Marionette - 它已经为您创建。如果你不想创建一个新的 Backbone.Controller 你可以在路由器中运行这个 sn-p

以上是关于在主干应用程序中获取以前的路由器/url的主要内容,如果未能解决你的问题,请参考以下文章

访问 URL 时是不是可以完全摆脱主干上的哈希?

主干更新视图

从输入URL到页面加载的全过程

如何将主干视图连接到流星车把模板?

如何使用主干和 requirejs 定义/使用多个路由

需要帮助理解主干中嵌套视图的基础知识