Ich habe eine benutzerdefinierte Direktive erstellt, die zwei Werte hat. Das erste ist das Konfigurationsobjekt und das zweite ist das Datenobjekt. Ich ändere diese Konfigurations- und Datenobjekte innerhalb meiner Direktive, die sie im übergeordneten Bereich widerspiegelt. Das verursacht mir einen Fehler, wenn ich die Direktive mehrmals benutzen muss.Angularjs Direktiven isolierter Geltungsbereich + Einweg-Datenbindung funktioniert nicht für Objekte?
Ich folgte https://umur.io/angularjs-directives-using-isolated-scope-with-attributes/ und ich verwende isolierten Bereich.
Ich möchte One-Way-Datenbindung für Objekte in isolierten Bereich. Was auch immer ich in der direction-Funktion ändere, sollte nicht im übergeordneten Bereich widerspiegeln.
unten ist der Anwendungsbereich der Richtlinie.
scope: {
config: "&config",
dataObj: "&dataObj"
}
hier ist, wie ich es in der Link-Funktion der Richtlinie Zugriff
var config = scope.config();
var dataObj= scope.dataObj();
ich diesen Pass von Referenz gehe davon hier geschieht.
Ich füge JSbin hinzu. Überprüfen Sie die Konsole, ob sich der Wert des Objekts im übergeordneten Bereich ändert und spiegelt.
https://jsbin.com/vagowe/edit?html,js,output
Also was ist das spezifische Problem? Bitte zeigen Sie alle relevanten Code und erstellen Sie eine [Plocker] (http://plnr.co/edit/?p = Katalog) Demo, die repliziert Ausgabe – charlietfl
@charlietfl Ich habe die Demo hinzugefügt. Ich hoffe, Sie verstehen mein Problem – murli2308
Sie müssen '=' Zwei-Wege-Bindung verwenden, um Objekte an eine Direktive zu übergeben. – cgTag