2013-06-05 7 views
10

Wenn während der Ausführung ein Element zu einem Array hinzugefügt wird, das mit ngRepeat gerendert wird, werden alle Elemente neu gezeichnet?Führt ngRepeat nach dem Hinzufügen eines neuen Elements alle Elemente neu aus?

+2

Die endgültige Antwort auf diese Frage lautet: „Ja.“, Aber es kann nicht, weil so lassen Sie nicht eingereicht werden nicht geben Sie eine solche eine kurze Antwort. – Stewie

+2

@Stewie Es ist gut, dass es nicht geht. Beginnen Sie mit "Ja". Fügen Sie dann einen Grund/Erklärung und einen Link zu den Referenzen hinzu. Oder lass einfach "Ja". in einem Kommentar. Das ist auch in Ordnung. – user2246674

+0

Sie haben Recht (bezüglich der Antworteinschränkungen), aber die Frage stellt sich nicht "Warum wird neu gezeichnet?", Es fragt einfach "Zeichnet es neu" und das Format und die Länge der Frage zeigen daher keine Neigung zu verstehen die tieferen Gründe für das ngRepeat-Verhalten. Darauf will meine "Antwort" hinweisen. – Stewie

Antwort

6

Ja, alle Artikel werden neu gezeichnet.

In der Tat können die Elemente auch zu anderen Zeiten neu gezeichnet werden.

Beispiel: Wenn ein Wert in einer übergeordneten Richtlinie/Vorlage aktualisiert wird. Während der Schleife '$ Digest' evaluiert Angular den Scope-Baum und dies führt dazu, dass betroffene Child-Komponenten neu gezeichnet werden.

Weitere Informationen:

+0

Danke für die Antwort! Hier ist die Frage fortgesetzt :) http://stackoverflow.com/questions/16968614/how-to-implment-a-load-more-pagination-in-angularjs-without-ng-repeat – redben

+1

oops, nach diesem Artikel es nicht alles neu zeichnen http://www.bennadel.com/blog/2443-Rendering-DOM-Elements-With-ngRepeat-In-AngularJS.htm – redben

+1

Das ist ein guter Punkt! Zur Verdeutlichung - ein neues DOM-Element darf nicht hinzugefügt werden, wenn angular feststellen kann, dass das Zielelement bereits existiert. ** Allerdings ** geänderte Elemente werden neu bewertet - dies kann dazu führen, dass teure Vorgänge erneut ausgeführt werden. Außerdem wird "ng-repeat" bei bestimmten Datentypen immer alle Elemente neu zeichnen, z. B. http://stackoverflow.com/q/14969502/317180 –