我有一个骨干视图的特定元素将继承的一般元素。我有需要应用于所有元素的事件处理逻辑以及特定于子类型元素的事件处理逻辑。我遇到了麻烦,因为子View对于也由父视图处理的事件有其自己的回调,因此当我尝试在两者中使用事件散列时,子对象或父对象回调从不会被调用。让我说明了一些代码:覆盖事件哈希继承Backbone.js查看
var ElementView = Backbone.View.extend({
events: {
"mouseup": "upHandler",
"mousedown": "downHandler",
"mousemove": "moveHandler"
},
initialize: function() {
// add events from child
if (this.events)
this.events = _.defaults(this.events, ElementView.prototype.events);
this.delegateEvents(this.events);
}
});
var StrokeView = ElementView.extend({
events: {
"mousemove": "strokeMoveHandler"
}
});
我将如何解决这个问题的一个可扩展的方式,尤其是如果我稍后会继承另一个层面?处理这种
好的建议,尽管我认为你的事件和命名空间是相反的。它不应该是“mouseup:element”吗? –
@RobHruska这不是文档建议的内容,还有“野外”示例指向我的建议用法。最终,如何构建您的活动名称取决于您。 –
很酷。我不经常使用它们,主要是从我见过的其他示例中脱离出来,主要是jQuery如何执行它:http://docs.jquery.com/Namespaced_Events。 –