Skip to content
This repository has been archived by the owner on Sep 8, 2020. It is now read-only.

Cannot get it to save first sort, all other sorts save just fine. #359

Closed
EmptyPockets opened this issue May 9, 2015 · 1 comment
Closed

Comments

@EmptyPockets
Copy link

I'm using ui-sortable with firebase/angularfire to save the data. Here's my setup:

//set options for ui-sortable
    $scope.sortableOptions = {
        stop: function(event, ui) {
            $scope.userList.forEach(function(todo){
             todo.sort = $scope.userList.indexOf(todo);
              $scope.userList.$save(todo);
            });
      },
      axis: 'y'
    }

<ul ui-sortable="sortableOptions" ng-model="userList">
<li ng-repeat = "task in userList | orderBy: 'sort'"> 
</li>
</ul>

When I try to sort the first time, everything will move back to its original position. If I try to sort again after that everything works great. Any ideas?

@thgreasi
Copy link
Contributor

You should not apply filters to ng-repeat since (as README states):

...Otherwise the index matching of the generated DOM elements and the ng-model's items will break.
In other words: The items of ng-model must match the indexes of the generated DOM elements.

Filtering/Ordering should (ng filters in general that manipulate the ng-model) be applied in the controller and not in the view. For more details read the comments in #70

Please refer to the filtering and two ordering examples found in README on how you should properly apply your logic inside the controller.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants