Angular Js - 在本地存储中添加动态数据

时间:2016-10-12 07:59:54

标签: javascript angularjs local-storage

我是angular js的新手,我在我的项目中使用本地存储。 我想动态地将数据存储在本地存储中。

实现这一目标的最佳方法是什么?

我的功能是:

$scope.saveItem=function(){
    var dataobj= {  'itemCode':vm.person1.selected.itemCode,
                    'itemName':'name',
                    'qty':'1',
                    'price':'2',
                    'total':1 * 2,
                    'comment':'comment',
                   };
    localStorageService.set('order',dataobj);
}

我在这里输入了静态数据,但是当我添加新项目并且我想保留以前的数据并将新输入的数据存储在本地存储中时,这些数据将是动态的。

2 个答案:

答案 0 :(得分:1)

我不知道为什么使用localStorage服务,您可以简单地使用localStorage本机API。 当你添加一些项目时,只需执行以下操作:

var order = localStorage.getItem('order');
if(order) {
   localStorage.setItem('previousOrder', order);
}
localStorage.setItem('order', NEW_ORDER_DATA_HERE);

注意:存储项必须是DOMString,因此在存储和提取数据之前,请先考虑JSON.stringifyJSON.parse数据。

答案 1 :(得分:1)

我使用了这段代码,它完美地运作:

    $scope.temp=JSON.parse(localStorage.getItem(vm.person.selected.cust_id));
    if($scope.temp){
    $scope.order = $scope.temp;
    }else{
    $scope.order=[];
    }   
    localStorage.setItem(vm.person.selected.cust_id, JSON.stringify($scope.order));

    var dataobj={'itemCode':vm.person1.selected.itemCode,
         'itemName':vm.person1.selected.itemName,
         'qty':vm.qty,
         'price':vm.price,
         'total':vm.qty * vm.price,
         'comment':vm.comment,
         'orderType':$scope.heading
         };
    $scope.order.unshift(dataobj);           
    localStorage.setItem(vm.person.selected.cust_id,JSON.stringify($scope.order));
    $scope.allCurrentTakeAwayOrder=$scope.order;