ngonchanges

___ answer45066509 ___

Wenn Sie Ihr metaIds-Array neu zuweisen, wird das ngOnChanges-Lifecycle-Ereignis ausgelöst. Sie können Ihr Array in ein neues Array dekonstruieren.

%Vor%     
___ qstntxt ___

Meine eckige Anwendung blieb bei einem Problem hängen, ich benutzte die Eingabe als Array und drückte einen Wert auf das Array, wenn das Klickereignis auftrat. Aber die ngOnChanges feuern nicht, wenn der Array-Push ausgeführt wird. Gibt es eine Möglichkeit zum Auslösen von ngOnChange

?

Mein Code ist ts Datei ist

%Vor%

Mein Auswahltag

%Vor%

Klicken Sie auf Ereigniscode

%Vor%     
___ answer43223700 ___

Die Erkennung von Winkeländerungen überprüft nur die Objektidentität, nicht den Objektinhalt. Einfügungen oder Entfernungen werden daher nicht erkannt.

Sie können das Array nach jedem Update kopieren

%Vor%

oder verwenden Sie %code% , um nach Änderungen in %code% in %code% wie %code% zu suchen.

    
___ tag123angular2template ___ Für Fragen, die sich auf die Winkelsymbol-Syntax beziehen: Interpolation, Eingabe (Eigenschaft), Ausgabe (Ereignis), Zwei-Wege-Bindung, lokale Variablen, Sternsyntax usw. Dieses Tag ist spezifisch für die eckige Version 2.x und höher ___ tag123angular ___ Fragen zu Angular, dem Web-Framework von Google. Verwenden Sie dieses Tag für Angular-Fragen, die nicht für eine einzelne Version spezifisch sind. Verwenden Sie für das ältere AngularJS-Webframework (1.x) das angularjs-Tag. ___ tag123nichtändern ___ Reagieren, wenn Angular datengebundene Eingabeeigenschaften neu definiert. Die Methode empfängt ein SimpleChanges-Objekt mit aktuellen und vorherigen Eigenschaftswerten. Wird vor ngOnInit und immer dann aufgerufen, wenn sich eine oder mehrere datengebundene Eingabeeigenschaften ändern. ___ answer44294538 ___

@ GünterZöchbauer's Antwort ist völlig richtig. Ich möchte jedoch eine Alternative / Ergänzung zum Kopieren des gesamten Arrays hinzufügen. Verwenden Sie das gleiche Beispiel aus der Frage.

%Vor%

wurde zu

geändert %Vor%

Die Länge hier entspricht der Funktion * ngFor trackBy für die Komponente. Damit treten die ngOnChanges mit Inhaltslängenänderungen auf.

Bei Verwendung in Verbindung mit der Methode * ngFor trackBy sollte die Leistung verbessert werden, da die gebundenen Vorlagen des gesamten Arrays nicht neu berechnet werden (kein Bildschirm- / Inhaltsflackern).

    
___ qstnhdr ___ Warum angular 2 ngOnChanges reagiert nicht auf Eingabe-Array-Push ___
3
Antworten

Warum angular 2 ngOnChanges reagiert nicht auf Eingabe-Array-Push

Meine eckige Anwendung blieb bei einem Problem hängen, ich benutzte die Eingabe als Array und drückte einen Wert auf das Array, wenn das Klickereignis auftrat. Aber die ngOnChanges feuern nicht, wenn der Array-Push ausgeführt wird. Gibt es eine...
05.04.2017, 06:37