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.
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: Ссылка
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:
Referenz:
Ссылка
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
hatTags und Links javascript angular filter