У меня есть представление, которое создает и заполняет список выбора.Я хочу привязать событие к событию Change (когда пользователь выбирает другой параметр.
Он просто выводит что-то похожее на это:
<select>
<option value="id">ID Name</option
</select>
Просмотр:
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();
}
});
Шаблон сеанса просто:
<option value="{{Id}}">{{Name}}</option>
Событие никогда не запускается, и кажется, что оно не связывается правильно. Я хочу вызвать его при изменениисписок выбора.
Изначально я думал, что у меня может быть проблема, подобная событиям backbone.js и el , однако в этом случае это не работает.