Ich arbeite mit Angular 2 und Lodash.Angular 2 Bindung zu berechnet Getter gibt Debugfehler
ich ein Modell mit Beziehungen haben, und ich habe einen Getter wie folgt aus:
get relationsPerType() {
return _(this.Relations)
.groupBy(p => p.Type)
.toPairs()
.map(p => ({
type: <MessageRelationType>p[0],
relations: <Relation[]>p[1]
}));
}
Bindung den Wert von relationsPerType zu einem * ngFor Richtlinie
Edit: Das ist meine Bindung:
<div *ngFor="#relationGroup of Message.relationsPerType">
...
</div>
gibt mir die folgende Fehlermeldung:
Expression 'Message.relationsPerType in [email protected]:8' has changed after it was checked. Previous
das scheint vollkommen richtig zu sein, denn in der Tat wird dies jedes Mal berechnet, wenn es aufgerufen wird.
In jedem Fall kann ich mir mit "berechneten" Variablen nicht vorstellen, wie Angular 2 Change Detection erkennen konnte, dass sich relationsPerType tatsächlich geändert hat. Etwas wie Markierung der Getter als unveränderlich ??
Ich nehme ein besserer Weg geben würde:
a) in einer Eigentumsrecht die berechneten Getter Werte speichern von Anfang
b) Um das übergeordnete Objekt Immutable, um für Angular Änderungen an nicht verfolgen auf Eigenschaften
Gibt es einen besseren Weg, dies zu tun?
Wie binden Sie? –