如何避免重复到Angular.js中的本地存储

时间:2015-09-04 06:10:20

标签: angularjs local-storage

我使用Angular.js localstorage将值存储在本地

这是plnkr Demo

一切正常,但如何避免两次插入产品或值? (如何避免重复)将值推送到本地

2 个答案:

答案 0 :(得分:2)

您只需将项目推送到数组,而无需在cloneItem()中进行任何进一步检查。您可以更新其实现以首先检查重复(只是一个简单的想法):

$scope.cloneItem = function (todo) {

    // Check for duplicate on id
    if($scope.$storage.notes.filter(function (note) {
      return note.id === todo.id;
    }).length > 0) {
      return;
    };

    // Insert if not duplicate
    $scope.$storage.notes.push({
        "price": todo.price,
        "id": todo.id,
        "quan": todo.quan
    });
}

答案 1 :(得分:1)

我认为你可以使用比Nicolas更短的方式:

$scope.cloneItem = function (todo) {

    if ($scope.$storage.notes.indexOf(todo) == -1) {
    //if the object is not in the array
        $scope.$storage.notes.push({
            "price": todo.price,
            "id": todo.id,
            "quan": todo.quan
        });
    }
    //else you just do nothing
}