Backbone.history.navigate和this.router.navigate之间有什么区别

问题描述 投票:2回答:1

Backbone.history.navigatethis.router.navigate有什么区别?

为什么有时前者会在以后工作呢?

javascript backbone.js backbone-routing
1个回答
1
投票

如果你看看Backbone source,你会发现Router.prototype.navigate只是Backbone.history.navigate的代理,你可以在任何地方调用它而不需要路由器实例。

// Simple proxy to `Backbone.history` to save a fragment into the history.
navigate: function(fragment, options) {
  Backbone.history.navigate(fragment, options);
  return this;
},

路由在global, namespaced in Backbone, History instance中处理。

这是为了让开发人员创建自己的History类,然后覆盖Backbone.history属性以全局更改路由行为。

History类没有太多记录,但它是well commented in the source

此外,在navigate类中拥有Router的代理可以很容易地直接在路由器中挂钩我们自己的行为。


至于为什么有时它不起作用可能是因为你试图在this.router.navigate不存在的类中做this.router

© www.soinside.com 2019 - 2024. All rights reserved.