簡體   English   中英

骨干視圖原型事件綁定

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM