Javascript 如何扩展Backbone.history.navigate?
调用Backbone.history.navigate时,我希望能够更改全局变量 我想把它设置好Javascript 如何扩展Backbone.history.navigate?,javascript,html,backbone.js,Javascript,Html,Backbone.js,调用Backbone.history.navigate时,我希望能够更改全局变量 我想把它设置好 window.linkclicked = true; // when someone clicks a link 及 有没有一种方法可以使用javascript原型实现这一点? 如何在“导航”方法中插入该逻辑?您可以使用下划线扩展功能: _.extend(Backbone.history.navigate, { linkClicked : function( bool ){ //handle li
window.linkclicked = true; // when someone clicks a link
及
有没有一种方法可以使用javascript原型实现这一点?
如何在“导航”方法中插入该逻辑?您可以使用下划线扩展功能:
_.extend(Backbone.history.navigate, {
linkClicked : function( bool ){
//handle link clicked
}
});
您可以通过以下方式进行调用:
Backbone.history.navigate.linkClicked( true );
//or
Backbone.history.navigate.linkClicked( false );
您可以扩展
主干.history
实例,并根据需要重新定义函数
var originalNavigate = Backbone.history.navigate;
_.extend(Backbone.history, {
navigate: function(fragment, options) {
// do stuff before
var returnValue = originalNavigate.apply(this, arguments);
// do stuff after
return returnValue;
},
});
或使用闭合模块模式:
Backbone.history.navigate = (function(navigate) {
return function(fragment, options) {
/* ...snip ...*/
}
})(Backbone.history.navigate);
可能重复的我想OP是询问如何使调用
Backbone.history.navigate
也会更改一个全局变量,而不是Backbone.history.navigate
上的单独函数。好吧,我想我可以有一个包装器。
Backbone.history.navigate = (function(navigate) {
return function(fragment, options) {
/* ...snip ...*/
}
})(Backbone.history.navigate);