Ich habe eine ziemlich große Liste von Daten und jedes Element hat einen Filter angewendet. Aus Performancegründen (Ich möchte jedem Eintrag viele Attribute hinzufügen) Ich möchte die Liste nur aktualisieren, wenn sich Daten ändern (es ist in Ordnung, wenn die Aktualisierung unperformant ist). Leider wird die OnPush ChangeStrategy in Angular 2 immer noch aktualisiert, wenn ich auf etwas klicke.Manuelle Änderungserkennung in AngularJS oder Angular 2?
Gibt es eine Möglichkeit, NUR Updates/Checks manuell auszulösen (z. B. mit changeDetectorRef.markForCheck()
) und es nicht bei jedem Klickereignis automatisch zu haben?
Sowohl AngularJS (1.5) als auch Angular 2 sind in Ordnung.
Die Änderungserkennung in Angular2 ist wesentlich effizienter als in AngularJS1.x. Sind Sie sicher, dass Ihre Anforderungen mit einer OnPush ChangeStrategy nicht erfüllt werden? –
Siehe [Antwort] (http://stackoverflow.com/questions/34827334/triggering-angular2-change-detection-manual) –
@EricMartinez Ich sah diesen Beitrag vor, aber das Problem ist, dass nur eine zusätzliche Änderung Erkennung auslöst . Ich möchte jedoch alle unnötigen Änderungsnachweise loswerden. In meinem Fall habe ich eine reine Pipe, die immer dann auslöst, wenn die Change-Erkennung auslöst. – Smaug