[英]Backbone view prototype event binding
我正在创建一个Backbone.js插件,该插件提供了提供的JSON数据的基本网格布局。 我的问题是我不确定如何在不更改插件本身的情况下处理与View类的绑定事件。 而且我宁愿不这样做-我希望插件的用户能够扩展视图或更改其原型以绑定自定义事件。
插件中的View是一个基本视图,没有绑定任何事件。 它还包含一些其他功能,为简单起见,我已将其省略。
FlipCard.CardView = Backbone.View.extend({
tagName: 'div',
className: 'card',
// and more
});
我试图在单独的app.js文件中使用prototype属性绑定事件,但似乎未触发事件。
FlipCard.CardView.prototype.events = {
'click .card' : 'alert'
};
FlipCard.CardView.prototype.alert = function(){
alert("hello!");
};
而且我熟悉.extend({})函数,但是除非我能以某种方式通知插件使用视图的扩展版本,否则该方法将不起作用...我宁愿不这样做。
关于我应该在这里做什么的任何想法?
编辑:原来这是一个愚蠢的错误。 由于视图具有类“ .card”,并且我试图将click事件绑定到“ .card”,因此无需放入“ click .card”。 相反,该事件应为:
FlipCard.CardView.prototype.events = {
'click' : 'alert'
};
如果有人使用他们的插件,他们会延长你的FlipCard.CardView
在要扩展以同样的方式Backbone.Model
myApp.Views.myCardView = FlipCard.CardView.extend({
events: {
'click .card' : 'alert'
},
alert: function() {
alert("hello!");
}
}
这将创建带有绑定事件的插件视图的扩展版本,并且不会以任何方式改变插件。 然后,用户将按常规实例化它:
var someView = new myApp.Views.myCardView();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.