Ho una vista che crea e popola una lista di selezione. Voglio associare un evento sul evento Change (Quando l'utente seleziona una diversa opzioneAttivazione di un evento su el in Vista dorsale
Emette semplicemente qualcosa di simile a questo:.
<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();
}
});
Il modello di sessione è semplicemente:
<option value="{{Id}}">{{Name}}</option>
L'evento non viene mai attivato e Sembra che non si leghi correttamente. Voglio attivarlo sulla modifica dell'elenco di selezione.
Originariamente ho pensato che potrei avere un problema simile a: backbone.js events and el, tuttavia non funziona in questo caso.
Silly, ma Chrome stava memorizzando nella cache la pagina e gli aggiornamenti non venivano mostrati anche dopo molti tentativi. Ma, ho usato il tuo violino, che mi ha permesso di costruire e sistemare alcune cose. Grazie! – Hyper