2017-12-20 1 views
0
zu sein

Ich habe kürzlich mein Angular-Projekt von 4 auf 5 aktualisiert. Ich bemerkte jedoch einige Änderungen, die ich nicht erklären kann.Eckige (5) Eingangsvariablen scheinen

Ich habe eine ParentComponent und eine ChildComponent. ChildComponent empfängt eine InputObject von der übergeordneten.

Verhalten vor der Aktualisierung: Wenn ich etwas auf InputObject in meinem ParentComponent ändern, kann dies in ChildComponent zu sehen.

Verhalten nach Aktualisierung: Wenn ich etwas auf InputObject in meinem ParentComponent ändern, wird diese Änderung in ChildComponent nicht geschieht.

Ist das korrektes Verhalten? Wenn ja, wie sollen mehrere Komponenten an einem Objekt arbeiten?

+0

Ich habe auch auf Angular 5 aktualisiert, aber für mich beeinflussen Änderungen am InputObject in der ParentComponent die ChildComponent. – DerJP

+0

können Sie bitte etwas Code hinzufügen, den Sie arbeiten –

+0

Ich werde an einem Plünderer arbeiten – hY8vVpf3tyR57Xib

Antwort

0

Wenn die Änderung, die Sie tun, die Aktualisierung einer bestimmten Eigenschaft beinhaltet, sollte es funktionieren, aber wenn Sie das ganze Objekt aktualisieren (zB var obj = anotherObj), wird Angular die Änderungserkennung nicht auslösen, weil es keinen tiefen Vergleich fällig etwas leisten.

Angular Documentation

Die Log-Einträge als String-Wert der Leistungseigenschaftsänderungen erscheinen. Aber die ngOnChanges fängt keine Änderungen an held.name ein Das ist zunächst überraschend. Angular ruft nur den Hook auf, wenn sich der Wert der Eingabeeigenschaft ändert. Der Wert der Heldeneigenschaft ist der Verweis auf das Heldenobjekt. Angular ist es egal, dass sich der Name des Helden geändert hat. Die Referenz des Heldenobjekts hat sich nicht geändert, aus Angulars Sicht gibt es keine Änderung zu melden!

+0

angeben Ich denke nicht, dass es spezifisch für ng5 ist? – gyc

Verwandte Themen