Manuell aktualisieren UI-Sortierbare Angular-UI-Elemente

8

Im Wesentlichen möchte ich, dass Benutzer ein Element ziehen oder ablegen können oder auf die Pfeile nach oben / unten klicken, um ein Element in der Liste zu verschieben.

Gibt es eine gute Möglichkeit, die Indizes der Objekte zu aktualisieren, die gut mit ui-sortable / angular-ui abgespielt werden?

Danke.

aktualisieren

Wir konnten dies lösen, indem wir eine Funktion in unserem Controller hinzufügten, die das Element aus dem Array löste und es in einem Index größer oder kleiner als seine ursprüngliche Position hinzufügte. Hier ist ein schlampiges Beispiel:

%Vor%

Ссылка

Sie müssten eine Überprüfung hinzufügen, ob es das erste oder letzte Element im Array war, das entsprechend nach oben oder unten deaktiviert wurde.

    
juliaallyce 21.07.2014, 19:24
quelle

2 Antworten

0

Wir konnten dies lösen, indem wir eine Funktion in unserem Controller hinzufügten, die das Element aus dem Array löste und es in einem Index größer oder kleiner als seine ursprüngliche Position hinzufügte. Hier ist ein schlampiges Beispiel:

%Vor%

Ссылка

Sie müssten eine Überprüfung hinzufügen, ob es das erste oder letzte Element im Array war, das entsprechend nach oben oder unten deaktiviert wurde.

    
juliaallyce 19.08.2014, 22:32
quelle
0
___ tag123angularjs ___ Für Fragen zu AngularJS (1.x), dem Open-Source-JavaScript-Framework. Verwenden Sie dieses Tag NICHT für Angular 2 oder höhere Versionen. Verwenden Sie stattdessen das [eckige] -Tag. ___ qstntxt ___

Im Wesentlichen möchte ich, dass Benutzer ein Element ziehen oder ablegen können oder auf die Pfeile nach oben / unten klicken, um ein Element in der Liste zu verschieben.

Gibt es eine gute Möglichkeit, die Indizes der Objekte zu aktualisieren, die gut mit ui-sortable / angular-ui abgespielt werden?

Danke.

aktualisieren

Wir konnten dies lösen, indem wir eine Funktion in unserem Controller hinzufügten, die das Element aus dem Array löste und es in einem Index größer oder kleiner als seine ursprüngliche Position hinzufügte. Hier ist ein schlampiges Beispiel:

%Vor%

Ссылка

Sie müssten eine Überprüfung hinzufügen, ob es das erste oder letzte Element im Array war, das entsprechend nach oben oder unten deaktiviert wurde.

    
___ tag123angularui ___ AngularUI ist die Erweiterung des AngularJS-Frameworks. Es enthält UI-Widgets und -Direktiven, die nicht Teil des AngularJS-Kerns sind, aber in einem Projekt häufig benötigt werden. ___ tag123jqueryuisortable ___ Das jQuery UI Sortierbare Plugin macht ausgewählte Elemente durch Ziehen mit der Maus sortierbar. ___ qstnhdr ___ Manuell aktualisieren UI-Sortierbare Angular-UI-Elemente ___ answer24912533 ​​___

Wie bei allem AngularJS lautet die Antwort " denke in Angular, nicht jQuery ".

Dieser CodePen macht einen guten Job und zeigt, wie es gemacht wird. Im Grunde haben Sie ein temporäres Objekt für das Ziehen, das Sie dann in das gebundene Array des ng-repeats schieben. Ich kann mir das nicht vorstellen (nicht meine Kreation), aber Google hat mich ziemlich schnell dazu geführt. Der CodePen verwendet keine externen Abhängigkeiten, aber wie Sie sehen können, bedeutet das etwas mehr Arbeit als die Verwendung von Angular-UI .

Hier ist ein JSFiddle , das dasselbe Konzept zeigt, aber mit Angular-UI-Abhängigkeit. Der Vorteil der Verwendung von angular-u ist, dass Ihr gebundenes Datenarray nur als solches aufgerufen werden muss:

%Vor%

Dies bedeutet weniger Arbeit von Ihrer Seite, da es bereits herausgefunden wurde. AngularJS kann sehr gut mit jQuery spielen, daher sollte dies, abhängig von Ihrem Anwendungsfall, nicht zu einer großen Verschiebung des Entwicklungsansatzes von jQuery UI führen.

    
___ answer25394044 ___

Wir konnten dies lösen, indem wir eine Funktion in unserem Controller hinzufügten, die das Element aus dem Array löste und es in einem Index größer oder kleiner als seine ursprüngliche Position hinzufügte. Hier ist ein schlampiges Beispiel:

%Vor%

Ссылка

Sie müssten eine Überprüfung hinzufügen, ob es das erste oder letzte Element im Array war, das entsprechend nach oben oder unten deaktiviert wurde.

    
___
Eric McCormick 23.07.2014 13:59
quelle