Tôi có chế độ xem tạo và điền một Danh sách chọn. Tôi muốn để ràng buộc một sự kiện trên các sự kiện Change (Khi người sử dụng chọn một lựa chọn khác nhauKích hoạt sự kiện trên el trong Backbone View
Nó chỉ đơn giản kết quả đầu ra một cái gì đó như thế này:.
<select>
<option value="id">ID Name</option
</select>
The View:
App.Views.SessionList = Backbone.View.extend({
tagName: 'select',
id: 'sessionList',
events: {
'change': 'selectionChanged'
},
initialize: function() {
// Load Collection
_.bindAll(this, 'selectionChanged');
this.template = _.template($('#optionsTemplate').html());
this.Sessiontemplate = _.template($('#session_template').html());
this.SelectedSessiontemplate = _.template($('#selected_session_template').html());
// Create Collection
this.SessionList = new App.Collections.SessionList();
// Set Bindings
this.SessionList.bind('add', this.addSession, this);
this.SessionList.bind('reset', this.addSessions, this);
this.render();
this.SessionList.fetch();
},
render: function() {
return this;
},
addSession: function (item, num) {
if (num === 0) {
$(this.el).append(this.SelectedSessiontemplate(item.toJSON()));
console.log("Selected");
}
else {
$(this.el).append(this.Sessiontemplate(item.toJSON()));
}
},
addSessions: function() {
var self = this;
// Add all Rows
for (var i = 0; i < self.SessionList.models.length; i++) {
this.addSession(self.SessionList.models[i], i);
}
},
selectionChanged: function (e) {
var field = $(e.currentTarget);
var value = $("option:selected", field).val();
}
});
Mẫu phiên chỉ đơn giản là:
<option value="{{Id}}">{{Name}}</option>
Sự kiện không bao giờ được kích hoạt và có vẻ như nó không bị ràng buộc chính xác. Tôi muốn kích hoạt nó trên sự thay đổi của danh sách lựa chọn.
Ban đầu tôi nghĩ rằng tôi có thể đang gặp sự cố tương tự: backbone.js events and el, tuy nhiên nó không hoạt động trong trường hợp này.
Ngớ ngẩn, nhưng Chrome đang lưu vào bộ nhớ cache trang và các bản cập nhật không được hiển thị ngay cả sau nhiều lần thử. Nhưng, tôi đã sử dụng fiddle của bạn, cho phép tôi xây dựng và sửa chữa một số thứ. Cảm ơn bạn! – Hyper