Ioni c Creator - Переупорядочить элементы списка, сохраняющиеся в базе данных? - PullRequest
1 голос
/ 11 марта 2020

люди. Я впервые задаю такой вопрос, поэтому надеюсь, что смогу предоставить как можно больше информации, но если что-то сбивает с толку, пожалуйста, дайте мне знать, и я постараюсь уточнить это.

Я использую Ioni c Creator для создания списка задач, используя Firebase, и сейчас я пытаюсь реализовать функцию переупорядочения. Я смог переупорядочить элементы без проблем, но новый переупорядоченный список, кажется, никогда не сохраняет новый порядок или сохраняется. После анализа я понимаю, что мне нужно найти способ, чтобы переупорядоченные элементы сохранялись в хранилище, но я не совсем уверен, как это сделать.

Кроме того, после некоторых исследований, как здесь, так и в другом месте, я думаю, мне нужно сохранить позицию индекса элемента в Firebase, а затем я могу отсортировать его по этому индексу? Я не совсем уверен, как это сделать, даже посмотрев здесь, поэтому любое понимание поможет.

Я опубликую нижеприведенный код и надеюсь, что это поможет обеспечить некоторое понимание. Опять же, я впервые задаю такой вопрос, поэтому, если я упускаю что-то очевидное, я был бы признателен за отзыв.

Если это также может помочь, я следовал этим инструкциям для справки при создании своего приложение, если это может помочь с предоставлением какой-либо понимание вообще.

https://www.youtube.com/watch?v=IrwrZBBOiP8 https://www.youtube.com/watch?v=IrwrZBBOiP8

Главная домашняя страница:

          function ($scope, $stateParams, Todos, $ionicModal) {

$scope.showReorder = false;

$scope.toggle = function(v){
    $scope[v] = !$scope[v];
}

$scope.reorder = function(item, fromIndex, toIndex){
    $scope.items.splice(fromIndex, 1);
    $scope.items.splice(toIndex, 0, item);
}

$scope.items = Todos.items;


$scope.data = {
    'title': ''
}

$scope.modal = $ionicModal.fromTemplate("<ion-modal-view>" +
"<ion-header-bar class='bar-balanced'>" +
  "<h1 class='title'>Add a Movie Title</h1>" +
  '<button class="button button-clear" ng-click="closeModal()">Close</button>' +
"</ion-header-bar>" +
"<ion-content class='padding'>" +
  "<label class='item item-input'><input type='text' placeholder='Title' ng-model='data.title' /></label>" +
  "<button ng-click='addItem()' class='button button-balanced button-block'>Submit</button>" +
"</ion-content>" +  "</ion-modal-view>", {
    scope: $scope,
    animation: 'slide-in-up'
})

$scope.showModal = function(){
    $scope.modal.show();
}

$scope.closeModal = function(){
    $scope.data.title = '';
    $scope.modal.hide();
}

$scope.addItem = function(){
    Todos.addItem($scope.data.title);
    $scope.closeModal();   
} }

Задачи. js

angular.module('todos', ['firebase'])
.run(function(){
var config = {
    apiKey: (removed for posting purposes)
    authDomain: (removed for posting purposes)
    databaseURL: (removed for posting purposes)
    storageBucket: (removed for posting purposes)
  };
  firebase.initializeApp(config);
})

.service('Todos', ['$firebaseArray', function($firebaseArray){

var ref = firebase.database().ref().child('todos');
var items = $firebaseArray(ref);

var todos = {
    'items': items,
    addItem: function(title){
        items.$add({
            'title': title,
            'finished': false
        });
    },
    setFinished: function(item, newV){
        item.finished = newV;
        items.$save(item);
    }
}

return todos;

}]);
...