[英]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.