2016-04-27 6 views
1

In meiner einfachen TODO-Anwendung habe ich eine Array-Liste in meinem lokalen Speicher gespeichert. im Grunde sind es Aufgabenlisten. Beim Löschen einer Aufgabe möchte ich dieselbe Aufgabe auch aus dem lokalen Speicher löschen.So löschen Sie ein Array-Element im lokalen Speicher

JS-Code

$scope.addTask = function(){ 
     localStorage.setItem("storedTasks", JSON.stringify($scope.tasks)); 
    }; //function to add task 

    $scope.deleteTask = function(){ 
    $scope.tasks.splice(this.$index, 1);  
    localStorage.removeItem("storedTasks"); 
    }; // Function to delete a task from list 

HTML

  <div class="taskList"> 
       <ol> 
        <li ng-repeat="task in tasks track by $index"> {{task}} 
        <i class="fa fa-trash-o" aria-hidden="true" ng-click="deleteTask()" data-toggle="tooltip" title="Delete Task"></i> 
        <i class="fa fa-pencil-square-o" aria-hidden="true" ng-click="editTask()"></i> 
        </li> 
        <p ng-show="tasks.length==0">No Tasks Available </p> 
       </ol> 
      </div> 

wenn ich localStorage.removeItem() ist es das gesamte Array löscht, anstatt die Aufgabe, die ich wollte löschen. Wie lösche ich nur die Aufgabe, auf die geklickt wird, um gelöscht zu werden

+0

Sie sollten die Werte in einer Variablen abrufen müssen dann entfernen Sie bestimmte Wert oder Aufgabe, dann müssen Sie erneut die localStorage mit demselben Namen speichern –

Antwort

1

Sie müssten Artikel, entfernen Sie den Indexwert und setzen Sie das Element erneut.

 $scope.deleteTask = function(){ 
     $scope.newTasks = localStorage.getItem("storedTasks"); 
     $scope.newTasks.splice(this.$index, 1);  
     localStorage.setItem("storedTasks",JSON.stringify($scope.newTasks)); 
     }; 
0

Entfernen Sie die gleiche Aufgabe in diesem Index von localstorage mit Spleißfunktion.

$scope.deleteTask = function(){    
    $scope.tasks.splice(this.$index, 1);  
    $localStorage.storedTasks.splice(this.$index, 1); 
};