2017-08-11 25 views
1

我正试图实现离线添加到购物车功能。如何在推送前检查JSON中的天气项目

在这里,我有添加到购物车功能。

$scope.payloadData = []; 

    $scope.add_to_cart = function(MRP, ProductId, ProductVariantId) { 

    $scope.dt = { //It is JSON string 
     "Unitprice": MRP, 
     "ProductId": ProductId, 
     "Productvariantid": ProductVariantId 
} 

//If user is not logged in     
if(localStorage.getItem('tokenvalue') != undefined) { 
    $scope.payloadData.push($scope.dt);      
    for(var i=0;i<$scope.payloadData.length;i++) { 
    $scope.cmp = angular.equals($scope.payloadData, $scope.payloadData); 
    if($scope.cmp == "false") { // Not working 
    $scope.payloadData.push($scope.dt); //Push if item not exist in $scope.payloadData 
    } 
    else{ //do nothing }      
}  
} 

$scope.payloaddata after pushed is ://It is JSON array 
[ 
    { 
     "Unitprice": 500, 
     "ProductId": 3,   
     "Productvariantid": 3 
    } 
] 

如何查询天气$ scope.dt & $ scope.payloadData数据推前相同。

+0

您可以对此使用'indexOf'函数。 'if($ scope.payloaddata.indexOf($ scope.dt)== -1){...}' –

+0

你想检查$ scope.day已经存在于$ scope.payloaddata数组中吗? – Gaara

+0

现在。我想在被推之前检查。 –

回答

0

使用hasOwnProperty方法来确定

**myObj.hasOwnProperty(newproperty to push)** 
0

既然你是在你的对象只使用基本数据类型。这是检查$ scope.dt是否已存在于$ scope.payloaddata中的一种方法

function containsObject(objStr, list) { 
    var i; 
    for (i = 0; i < list.length; i++) { 
     if (JSON.stringify(list[i]) === objStr) { 
      return true; 
     } 
    } 
    return false; 
} 

var dtStr = JSON.stringify($scope.dt); 
containsObject(dtStr, $scope.payloaddata); 
相关问题