当我调用Backbone.history.navigate时,我希望能够更改全局变量。
我想设置
window.linkclicked = true; // when someone clicks a link
和
window.linkclicked = false; // when back button is pushed.
有没有办法用javascript原型做到这一点? 如何在"导航"中插入该逻辑?方法
答案 0 :(得分:0)
您可以扩展Backbone.history
实例,只需根据需要重新定义navigate
功能。
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);
答案 1 :(得分:-1)
您可以使用下划线扩展功能:
_.extend(Backbone.history.navigate, {
linkClicked : function( bool ){
//handle link clicked
}
});
你可以用以下方式调用:
Backbone.history.navigate.linkClicked( true );
//or
Backbone.history.navigate.linkClicked( false );