【问题标题】:How to delete an array element stored in local storage如何删除存储在本地存储中的数组元素
【发布时间】:2016-08-21 16:49:10
【问题描述】:

在我的简单 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() 时,它会清除整个数组,而不是我想要删除的任务。如何只删除点击删除的任务

【问题讨论】:

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

标签: javascript html arrays angularjs local-storage


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    使用拼接函数从本地存储中删除该索引处的相同任务。

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

    【讨论】:

      猜你喜欢
      • 2019-08-16
      • 1970-01-01
      • 2018-02-04
      • 2018-01-25
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      相关资源
      最近更新 更多