使用angular ui-sortable和angularfire有一种方法可以在排序时将新订单保存到数据库中吗?

时间:2014-09-17 17:37:26

标签: javascript angularjs firebase angularfire

我正在尝试使用ui-sortable对列表进行排序,然后使用angularfire将新列表顺序保存到firebase,以便在刷新时保持正确的顺序。可以实现吗?

以下是相关代码:

// HTML

<div ui-sortable="sortableOptions" ng-model="andreyTasks">
  <div ng-repeat="task in andreyTasks"></div>
</div>

// controller

    $scope.sortableOptions = {
    axis: 'y',
    stop: function( event, ui ) {
      //save the new sort order
    }
  };

2 个答案:

答案 0 :(得分:1)

我一起破解了一些有效的东西 - 不是很优雅。

所以,如果我有一个待办事项列表(firebaseArray)..添加内容如下:

$scope.todos.$add({

            simpleDesc : desc,

            list: []

                ,

            toggle:false,
            optionMenu:false,
            taskCount:0,
            doneCount:0,
            priority: -1

    })

然后,在我的可选择的选项中,我有:

$scope.sortableOptions = {
    stop: function(event, ui) {
        $scope.todos.forEach(function(todo){
            todo.priority = $scope.todos.indexOf(todo);
            $scope.todos.$save(todo);
    });
   }
}

相关的前端组件如下所示:

<div class="row" ng-model = "todos" ui-sortable="sortableOptions" >
  <div class="input-group" ng-repeat = "todo in todos |orderBy:  'priority' " > .....

答案 1 :(得分:0)

根据ui-sortable's README中提到的优秀代码示例,在firebase/angularfire#687中添加了firebase ui-sortable集成示例。