主干查看:继承和扩展从父事件 [英] Backbone View: Inherit and extend events from parent
本文介绍了主干查看:继承和扩展从父事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
骨干文档状态:
该事件属性也可以定义为返回一个事件的散列函数,以使其更容易编程定义事件,以及来自父视图继承它们。
块引用>你如何继承父母的看法事件和扩展它们?
父视图
VAR ParentView = Backbone.View.extend({
事件:{
'点击':'的onclick
}
});子视图
VAR ChildView = ParentView.extend({
事件:函数(){
????
}
});
解决方案的一种方法是:
VAR ChildView = ParentView.extend({
事件:函数(){
返回_.extend({},ParentView.prototype.events,{
'点击':'onclickChild
});
}
});另一个办法是:
VAR ParentView = Backbone.View.extend({
originalEvents:{
'点击':'的onclick
},
//覆盖此事件中的散列
//子视图
additionalEvents:{
},
事件:函数(){
返回_.extend({},this.originalEvents,this.additionalEvents);
}
});VAR ChildView = ParentView.extend({
additionalEvents:{
'点击':'onclickChild
}
});要检查活动是否是函数或对象
VAR ChildView = ParentView.extend({
事件:函数(){
VAR parentEvents = ParentView.prototype.events;
如果(_。isFunction(parentEvents)){
parentEvents = parentEvents();
}
返回_.extend({},parentEvents,{
'点击':'onclickChild
});
}
});Backbone's documentation states:
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.
How do you inherit a parent's view events and extend them?
Parent View
var ParentView = Backbone.View.extend({ events: { 'click': 'onclick' } });
Child View
var ChildView = ParentView.extend({ events: function(){ ???? } });
解决方案One way is:
var ChildView = ParentView.extend({ events: function(){ return _.extend({},ParentView.prototype.events,{ 'click' : 'onclickChild' }); } });
Another would be:
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' } });
To check whether Events is function or object
var ChildView = ParentView.extend({ events: function(){ var parentEvents = ParentView.prototype.events; if(_.isFunction(parentEvents)){ parentEvents = parentEvents(); } return _.extend({},parentEvents,{ 'click' : 'onclickChild' }); } });
这篇关于主干查看:继承和扩展从父事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文