So entfernen Sie die Zweiwegedatenbindung in Angular -2/4

8

Ich entwickle ein Multi-Select-Dropdown-Menü in Angular, in dem auch gesucht wird. Das ist, wenn ich die Eingabe analysiere, die vom Eingabefeld über meine Stammdaten gegeben wird und nur den gefilterten Inhalt im DOM anzeigt. Das ist meine Funktion:

%Vor%

Das Problem mit dem Code ist, dass jedes Mal, wenn die Methode modifyFilter aufgerufen wird, auch catalogManufacturerNames zusammen mit filterContent geändert wird. Also jedes Mal, wenn ich modifyFilter aufruft, wird die mit / ****** / markierte filterContent der vorherigen filterContent zugewiesen als die globale und vermutlich unveränderte catalogManufacturerNames . Ich denke, das Problem ist, dass filterContent und catalogManufacturerNames in beide Richtungen gebunden werden, aber ich weiß nicht, wie ich es an meine Anforderungen anpassen soll. Oder gibt es einen anderen Weg? Vorschläge sind willkommen.

    
Sriram Jayaraman 28.06.2017, 06:24
quelle

3 Antworten

17

In diesem Fall müssen Sie Object.assign verwenden. Es erstellt eine Kopie Ihres Objekts / Ihrer Variablen. Wenn Sie also einen Filter für das primäre Objekt ausführen, wird es nicht im kopierten Objekt reflektiert und umgekehrt.

Sie können {},[] gemäß Ihrer Anforderung verwenden.

{}: für einzelnes Objekt

[]: zum Sammeln von Objekten

%Vor%

Bitte beachten Sie die Einzelheiten: Ссылка

    
Sandip Patel 28.06.2017, 06:27
quelle
2

Als eine einfachere Alternative zur Verwendung von Object.assign können Sie den Spread-Operator verwenden, um die Eigenschaften des doppelt gebundenen Objekts in ein anderes zu kopieren:

%Vor%


Referenz: Ссылка

    
Jamie Kudla 14.08.2017 18:14
quelle
0

Angenommen, Sie haben eine Variable namens "a" mit dem Wert "apple" und die Variable mit dem Namen "b", der Sie den Wert "a" zuweisen möchten, und keine zukünftige Änderung von "b" "a" dann benutze einfach den Code unter

var b = Objekt.zuordnung (a); // Dies wird die bidirektionale Bindung stoppen, was bedeutet, dass jede Änderung in b keinen Einfluss auf

hat     
Dila Gurung 21.03.2018 05:36
quelle

Tags und Links