gpt4 book ai didi

javascript - 主干 View : Inherit and extend events from parent

转载 作者:IT王子 更新时间:2023-10-29 02:40:05 26 4
gpt4 key购买 nike

Backbone 的文档指出:

The events property may also be defined as a function that returns an events hash, to make it easier to programmatically define your events, as well as inherit them from parent views.

如何继承父 View 事件并扩展它们?

父 View

var ParentView = Backbone.View.extend({
events: {
'click': 'onclick'
}
});

subview

var ChildView = ParentView.extend({
events: function(){
????
}
});

最佳答案

一种方法是:

var ChildView = ParentView.extend({
events: function(){
return _.extend({},ParentView.prototype.events,{
'click' : 'onclickChild'
});
}
});

另一个是:

var ParentView = Backbone.View.extend({
originalEvents: {
'click': 'onclick'
},
//Override this event hash in
//a child view
additionalEvents: {
},
events : function() {
return _.extend({},this.originalEvents,this.additionalEvents);
}
});

var ChildView = ParentView.extend({
additionalEvents: {
'click' : ' onclickChild'
}
});

检查事件是函数还是对象

var ChildView = ParentView.extend({
events: function(){
var parentEvents = ParentView.prototype.events;
if(_.isFunction(parentEvents)){
parentEvents = parentEvents();
}
return _.extend({},parentEvents,{
'click' : 'onclickChild'
});
}
});

关于javascript - 主干 View : Inherit and extend events from parent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9403675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com