Backbone.history.navigate 和 this.router.navigate 有什么区别
What's the difference between Backbone.history.navigate and this.router.navigate
Backbone.history.navigate
和this.router.navigate
有什么区别?
为什么有时前者可以,而后者不行?
如果您查看 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
class,然后覆盖 Backbone.history
属性 以全局更改路由行为。
History
class 没有太多记录,但它是 well commented in the source。
此外,在 Router
class 中有一个 navigate
的代理可以很容易地直接在路由器中挂钩我们自己的行为。
至于为什么有时它不起作用,可能是因为您试图在 class 中执行 this.router.navigate
,而 this.router
不存在。
Backbone.history.navigate
和this.router.navigate
有什么区别?
为什么有时前者可以,而后者不行?
如果您查看 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
class,然后覆盖 Backbone.history
属性 以全局更改路由行为。
History
class 没有太多记录,但它是 well commented in the source。
此外,在 Router
class 中有一个 navigate
的代理可以很容易地直接在路由器中挂钩我们自己的行为。
至于为什么有时它不起作用,可能是因为您试图在 class 中执行 this.router.navigate
,而 this.router
不存在。