backbone.js: Ein Element zu einer Sammlung hinzufügen, ohne die gesamte Sammlung neu zu rendern

8

Ich habe eine Ansicht, die sich selbst aus einer Collection rendert:

%Vor%

Im View-Initialisierer binde ich das add-Ereignis der Sammlung auf die Render-Funktion der Ansicht:

%Vor%

An anderer Stelle in der Anwendung füge ich ein Element zur Sammlung hinzu.

%Vor%

Das Problem mit diesem Code besteht darin, dass, wenn ich der Sammlung ein neues Element hinzufüge, alle Elemente in der Sammlung erneut gerendert werden.

Gibt es eine Möglichkeit, ein neues Objekt zu einer Sammlung hinzuzufügen, ohne alle anderen Objekte neu zu rendern, sondern nur das neue Objekt zu rendern?

    
Jonathan Aubuchon 15.02.2012, 02:50
quelle

3 Antworten

3

Anstatt das add-Ereignis der Auflistung an die render-Funktion zu binden, binden Sie es an eine andere Funktion, die das hinzugefügte Modell akzeptiert, und ändert das DOM mit Daten aus dem hinzugefügten Modell.

    
erturne 15.02.2012, 03:07
quelle
4

Dies ist eine vereinfachte Version davon, wie ich es mache. reset fügt der Benutzeroberfläche alle Modelle hinzu und add fügt der Benutzeroberfläche ein einzelnes Modell hinzu. addAll hat grundsätzlich eine Schleife, die addOne für jedes Modell aufruft. Es könnte wahrscheinlich besser optimiert werden, aber es funktioniert gut genug.

%Vor%     
abraham 15.02.2012 03:22
quelle
0

Abraham schrieb ein gutes Beispiel. Ich habe es auch so benutzt

%Vor%

aber ich denke, das AddOne ist eine bessere Lösung

    
Michal 15.02.2012 08:27
quelle

Tags und Links