2017-05-17 1 views
1

Guten Morgen.2 Datensätze von 1 Abonnement machen 1 Satz readonly oder wenden Änderungen auf 1 Satz (eckig)

Ich habe einen Service, der Zeit braucht, um sein Ergebnis zurückzugeben. Schlimmste noch - ich muss es zweimal anrufen.

Die zurückgegebenen Daten bilden 2 Raster (eines bearbeitbar), die andere Ereignisse auslösen, wenn Änderungen vorgenommen werden.

Wenn ich das Abonnement trennen, auf das zweite Array vorgenommene Änderungen an diesem Datensatz enthaltenen

Wenn ich den Dienst einmal und erstellen 2 Datensätze alle Änderungen an dem Array durch zu beiden Sätzen fließt abonnieren.

Ich vermute, das Problem ist, zu tun, wie ich meinen Dienst abonnieren

this._CashService.getCash() 
    .subscribe((data: any[]) => { 
    this.cash = data; 
    this.cash2 = data; 
}); 

Hier ist ein Plunker zeigt mein Problem

https://plnkr.co/GwgBD1Mp8XF5oLZoYt4k?p

Ich werde nicht nicht das obere Gitter Änderung

Antwort

0

Während ich das erste Raster an die Variable "cash" und das zweite Raster an "cash2" gebunden habe, verwiesen diese Variablen auf das gleiche Array ("data", das kam von meinem Dienst). Als ich also einen Artikel des "cash2" -Arrays änderte, wurde das "cash" -Array ebenfalls modifiziert.

Um die Arrays getrennt zu bearbeiten, musste ich eine Kopie des ursprünglichen Arrays erstellen. Um dies für dieses Beispiel zu tun, benötigt es

this.cash2 = JSON.parse(JSON.stringify(data)); 
Verwandte Themen