2016-04-27 149 views
1

在我的简单TODO应用程序中,我有一个存储在本地存储中的数组列表。基本上它是任务列表。同时删除一个任务,我想从本地存储中删除相同的任务。如何删除存储在本地存储中的数组元素

JS代码

$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> 

当我使用localStorage.removeItem()会清除整个阵列,而不是我想删除的任务。我如何只删除被点击的任务删除

+0

您应该必须获取变量中的值,然后删除特定的值或任务,然后再次保存具有相同名称的localStorage –

回答

1

您需要获取物品,删除索引值并重新设置物品。

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

使用拼接功能从localstorage删除该索引处的相同任务。

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