Klonen von Elementen (Bindungen und alle) in AngularJs

8

Gibt es eine Möglichkeit, ein Element in AngularJS mit intakten Bindungen zu klonen?

Ich versuche, einen Bild-Pre-Loader für eine Galerie zu erstellen. Das Bild wird aus dem Bildschirm geladen und je nach Größe in eine von drei Spalten verschoben. Es muss also tatsächlich mit JavaScript bewegt werden, da ich nicht weiß, bis es geladen ist, in welchen Container es gehen soll.

Also nehme an, ich habe etwas wie:

%Vor%

Ich möchte, dass der Klon identisch ist, wobei die ng-Klick-Bindung intakt ist. Das Problem, auf das ich stoße, ist Folgendes: Wenn ich das Element mit element.clone (). AppendTo (someOtherElement) kloniere, ist die ng-click-Bindung auf dem Weg verloren. Wenn das Element in das DOM eingefügt wird, erkennt Angular nicht, dass es neue Bindungen erstellen muss.

Ich habe mit $ compile experimentiert, aber ich kann nicht herausfinden, wie man ein vorhandenes Element klont, ohne es manuell zu kopieren, ohne alle Attribute zu kopieren.

Das Klonen erfolgt durch eine Direktive und ich benutze nur Angular (kein jQuery speichert, was in Angular enthalten ist).

    
Erik Honn 11.11.2013, 11:07
quelle

1 Antwort

1

Sie sollten drei separate ng-Wiederholungen machen:

%Vor%

In Ihrem Controller sollten Sie Ihre Bilder asynchron laden und dann in Abhängigkeit von ihrer Größe in eines der drei Arrays schieben.

    
Jeremythuff 29.07.2016 04:47
quelle