2016-04-27 102 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); 
}; 
相關問題