Mã này không có nhiều ngữ cảnh, nhưng sẽ minh họa cho câu hỏi của tôi. Đó là chế độ xem Backbone được định nghĩa trong mô-đun AMD mà tôi sử dụng để tải qua require.jsThêm sự kiện backbone.js sau khi khởi tạo
Về cơ bản tôi muốn có thể thêm sự kiện vào chế độ xem xương sống sau khi khởi chạy đã được chạy. Tại thời điểm này tôi đang tạo một đối tượng sự kiện trống, và sau đó trong một phương thức được gọi là addView, tôi thêm một sự kiện mỗi khi hàm được gọi. Điều này hiện không hoạt động.
Tôi không chắc chắn tại thời điểm các sự kiện được đăng ký, nhưng tôi nghi ngờ rằng bằng cách nào đó tôi phải có cái nhìn để cập nhật người nghe khi đối tượng events
thay đổi?
Có ai biết cách tôi có thể đạt được thêm sự kiện vào Backbone.js sau khi khởi tạo không?
define([
'jQuery',
'Backbone'],
function ($, Backbone) {
var contentViews = new Array();
var SlidePanelView = Backbone.View.extend({
events: {},
/// <param name="targetDataAtt">The unique value inside the target's Data-Slide-Panel-Id attribute</param>
/// <param name="event">Backbone event to trigger view</param>
/// <param name="destroyOnRemove">True to destroy view when removed, False otherwise (Default true)</param>
addView: function (targetDataAtt, event, view, destroyOnRemove) {
destroyOnRemove = typeof destroyOnRemove !== 'undefined' ? destroyOnRemove : true;
this.events[event] = "viewEventFired";
contentViews[targetDataAtt] = { View: view, DestroyOnRemove: destroyOnRemove };
},
viewEventFired: function (e) {
var target = $(e.target);
var id = target.attr('data-slide-panel-id');
console.log(id);
}
});
// Return a singleton??
return new SlidePanelView;
});