Podobne pytania -Best Practice do przenoszenia modelu szkieletowej w kolekcji
How can I move a model within a collection?
Mam kolekcję kręgosłup, reprezentowane wizualnie na liście. Ta lista jest drag/droppable. Każdy przedmiot może zostać przesunięty do dowolnej pozycji w kolekcji (tzn. - nie sortować). Widziałem kilka przykładów, które wykorzystują natywne usuwanie/dodawanie kolekcji, aby umieścić model we właściwym miejscu. Jednak Backbone wewnętrznie wywołuje ustawienie po dodaniu modeli, które następnie wywołuje grupę metod związanych ze zdarzeniami i sortuje je na końcu. Czy istnieje jakaś wada polegająca na tym, że model jest po prostu składany do prawidłowej pozycji?
Usuń/Dodaj: Zobacz przykłady z pierwszego połączonego pytania.
Splice: Drugi przykład
Funkcja obecnie używam:
moveTo: function(oldIndex, newIndex){
oldIndex = oldIndex instanceof Backbone.Model ? this.at(oldIndex) : oldIndex;
var spliced = this.models.splice(oldIndex, 1);
this.models.splice(newIndex, 0, spliced[0]);
this.trigger("move",[oldIndex,newIndex]);
},
Czy jesteś pewien, że to nie jest rodzaj? Drag'n'drop, aby przenosić obiekty, ręcznie zmienia indeksy elementów, a tablica/kolekcja jest mniej więcej sortowana według indeksu. –
Domyślam się, że "technicznie" można to nazwać pewnym, po prostu chodziło o to, że jest arbitralny, a nie automatyczny oparty na właściwościach tablicy. Ale myślę, że zwracasz uwagę, że jest to odpowiednik "sortowania", ponieważ obie zmieniają tylko elementy, a tym samym Backbone nie ma z tym problemów. – iabw
Moje pytanie może być lepiej wyrażone jako "Czy istnieje sytuacja, w której chcesz usunąć i ponownie dodać modele do kolekcji, zamiast ręcznie je" sortować "?" ;) – iabw