Angular: AbstractControl.statusChanges scheint unnötig zu feuern

Erstellt am 9. Aug. 2016  ·  1Kommentar  ·  Quelle: angular/angular

Ich reiche ein...

[x] bug report

Aktuelles Verhalten

Da Observer mit einem "Änderungen"-Moniker benannt ist, denke ich, dass AbstractControl.statusChanges nur dann Werte ausgeben sollte, wenn sich der Status tatsächlich geändert hat. Stattdessen scheint es immer dann zu laufen, wenn valueChanges außer mit _status_ als Wert für den Rückruf.

Erwartetes/gewünschtes Verhalten

Es sollte nur ausgelöst werden, wenn sich der Status geändert hat.

Reproduktion des Problems
http://plnkr.co/edit/UTPrVls36cTQjPpwYN2Q

Was ist die Motivation / der Anwendungsfall für die Verhaltensänderung?
Ich fand es, indem ich einen besonders langsamen Bereich unserer Anwendung profilierte, der eine gewisse Verzögerung der Benutzeroberfläche verursachte, daher wäre meine Hauptbeschwerde die Leistung.

Es ist jedoch furchtbar einfach, dem Abonnenten einen distinctUntilChanged Operator hinzuzufügen, um das Problem zu beheben, aber die Erwartung ist, dass Sie dies nicht tun müssen, sodass es ohne Test leicht zu übersehen ist.

Bitte erzählen Sie uns von Ihrer Umgebung:

  • Winkelversion: 2.0.0-rc.4
  • Browser: alle
  • Sprache: alle
forms feature medium obvious

Hilfreichster Kommentar

Derzeit wird statusChanges jedes Mal ausgegeben, wenn der Status berechnet wird, nicht unbedingt, wenn er sich ändert. Ich kann mir vorstellen, dass das irreführend ist. Das Ändern des Verhaltens wäre jedoch für alle Formularbenutzer eine ziemlich große bahnbrechende Änderung. Wir könnten möglicherweise einen neuen Ereignissender hinzufügen, um zwischen den beiden zu unterscheiden. Ich würde gerne ein Gefühl dafür bekommen, wer dies nutzen würde, um Prioritäten zu setzen. Mehr Menschen fühlen den Schmerz davon? Anwendungsfälle?

>Alle Kommentare

Derzeit wird statusChanges jedes Mal ausgegeben, wenn der Status berechnet wird, nicht unbedingt, wenn er sich ändert. Ich kann mir vorstellen, dass das irreführend ist. Das Ändern des Verhaltens wäre jedoch für alle Formularbenutzer eine ziemlich große bahnbrechende Änderung. Wir könnten möglicherweise einen neuen Ereignissender hinzufügen, um zwischen den beiden zu unterscheiden. Ich würde gerne ein Gefühl dafür bekommen, wer dies nutzen würde, um Prioritäten zu setzen. Mehr Menschen fühlen den Schmerz davon? Anwendungsfälle?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen