2017-08-11 16 views
1

オフライン機能を実装しようとしています。JSONに天気が存在するかどうかを確認する方法

ここにはカートに追加機能があります。 & $ scope.payloadDataデータがプッシュされる前に、同じ気象の$ scope.dtをチェックする方法

$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 
    } 
] 

。あなたがオブジェクトでのみプリミティブデータ型を使用しているので

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

このためには、「indexOf」関数を使用できます。 'if($ scope.payloaddata.indexOf($ scope.dt)== -1){...}' –

+0

$ scope.dtが既に$ scope.payloaddata配列に存在するかどうかチェックしますか? – Gaara

+0

Exately。私は押される前にチェックしたい。 –

答えて

0

使用hasOwnPropertyをする方法。これは$ scope.pが$ scope.payloaddataに既に存在するかどうかを調べる方法の1つです。

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); 
0

ことを決定する

関連する問題