Suchen Sie eine Backbone.js-Ansicht, wenn Sie das Modell kennen?

Auf einer Seite, die Backbone.js verwendet, ist eine Sammlung an eine Ansicht gebunden (RowsViewschafft eine<ul>), die Unteransichten erstellt (RowViewschafft<li>) Für jedes Modell in der Sammlung gibt es ein Problem beim Einrichten der Inline-Bearbeitung für diese Modelle in der Sammlung.

Ich habe eine erstelltedit() Methode auf derRowView Ansicht, die das ersetztli Inhalt mit einem Textfeld, und wenn der Benutzer drückttab Während ich mich in diesem Textfeld befinde, möchte ich das auslösenedit() Methode der nächsten Ansicht in der Liste.

Ich kann das Modell des nächsten Modells in der Sammlung bekommen:

// within a RowView 'keydown' event handler
var myIndex = this.model.collection.indexOf(this.model);
var nextModel = this.model.collection.at(myIndex+1);

Die Frage ist jedoch, wie Sie die Ansicht finden, die diesem Modell zugeordnet ist. Das ElternteilRowsView In der Ansicht wird kein Verweis auf alle untergeordneten Ansichten gespeichert. es istrender() Methode ist nur:

this.$el.html(''); // Clear
this.model.each(function (model) {
    this.$el.append(new RowView({ model:model} ).render().el);
}, this);

Muss ich es neu schreiben, um ein separates Array von Zeigern auf alle zu erhalten?RowViewIst es darunter? Oder gibt es eine clevere Möglichkeit, die Ansicht zu finden, an die ein bekanntes Modell angehängt ist?

Hier ist eine jsFiddle des ganzen Problems:http://jsfiddle.net/midnightlightning/G4NeJ/

Antworten auf die Frage(2)

Ihre Antwort auf die Frage