Data una pagina che utilizza Backbone.js per avere una raccolta legata a una vista (RowsView
, crea un <ul>
) che crea viste secondarie (RowView
, crea <li>
) per ogni modello nella raccolta, ho un problema di impostazione editing in linea per quei modelli nella collezione.Trova una vista Backbone.js se conosci il modello?
ho creato un metodo edit()
sul RowView
opinione che sostituisce i li
contenuti con una casella di testo, e se l'utente preme tab
mentre in quella casella di testo, mi piacerebbe far scattare il metodo del prossimo View nel edit()
elenco.
posso ottenere il modello del prossimo modello della collezione:
// within a RowView 'keydown' event handler
var myIndex = this.model.collection.indexOf(this.model);
var nextModel = this.model.collection.at(myIndex+1);
Ma la domanda è, come trovare la vista che è attaccato a quel modello. La vista genitore RowsView
non conserva un riferimento a tutte le viste secondarie; è render()
metodo è solo:
this.$el.html(''); // Clear
this.model.each(function (model) {
this.$el.append(new RowView({ model:model}).render().el);
}, this);
Ho bisogno di riscriverlo per mantenere un array separato di puntatori a tutte le RowView
s che ha sotto di essa? O c'è un modo intelligente per trovare la Vista a cui è collegato un Modello conosciuto?
Ecco un jsFiddle di tutto il problema: http://jsfiddle.net/midnightlightning/G4NeJ/