2017-02-03 2 views
0

console.log($scope.filteredOffers); Hallo an alle möchten Zeichenfolge in JSON wie die Zeichenfolge überprüfen kommen Forms params jetzt in ganzen JSON einchecken und nur Daten anzeigen möchten, die damit verbunden ist. Bitte überprüfen Sie meinen Code .. mit anderen Worten wollen Daten nach den Parametern angezeigt werden, die kommende Form URL (die kommt).Wie zu prüfen Zeichenfolge in JSON-Array

.controller('mixCtrl', function($scope,$http,$stateParams) { 


    $http.get("http://tools.vcommission.com/api/coupons.php?apikey=e159f64e3dd49fddc3bb21dcda70f10c6670ea91aac30c7cb1d4ed37b20c45b8").then(function (response) { 
     $scope.myData = response.data; 
     $scope.offerName = ''; //set initially 
     $scope.selectedIndex = -1; 
     $scope.filteredOffers = []; 
    // $scope.link1 = []; 
    $scope.da = $stateParams.offer_name; 
    var a = $scope.da; 
console.log(a); 

     $scope.filteredOffers = $scope.myData.filter(function(a) { 
     for (var i=0;i<$scope.myData.length;i++) 
     { 
       $link =$scope.myData[i].offer_name; 
      if (a==$link) 
      { 
       return a ; 
       console.log(a); 

      } 

      //console.log(a); 
      } 
     // return offer.offer_name == $scope.da; 
     console.log($scope.da); 

     }); 
    }); 


    /* 
$scope.showData = function(offer_name, index) { 
     $scope.offerName = offer_name; 
     $scope.filteredOffers = $scope.myData.filter(function(offer) { 
     return offer.offer_name == $scope.offerName; 
     }); 
     $scope.selectedIndex = index; 

     }*/ 
     $scope.dealopen = function(a){ 
      for (var i=0;i<$scope.myData.length;i++) 
     { 
      //console.log($scope.data[i].name); 
      $link=$scope.data[i].name; 
      console.log($link); 
      if ($link==$a) 
      { 

      $window.open($link,"_self","location=yes"); 
      //console.log($a); 
      } 




     } 



     } 


}) 

Html

<div ng-repeat="offer in filteredOffers"> 
     <div class="couponCode">{{offer.coupon_code}}</div> 
     <div class="couponTitle">{{offer.coupon_title}}</div> 
     <div class="couponDescription">{{offer.coupon_Description}}</div> 
    </div> 

Antwort

0

Sie sind die Array.filter() Funktion falsch verwenden!

Vorher:

$scope.filteredOffers = $scope.myData.filter(function(a) { 
     for (var i=0;i<$scope.myData.length;i++) 
     { 
       $link =$scope.myData[i].offer_name; 
      if (a==$link) 
      { 
       return a ; 
       console.log(a); 

      } 

      //console.log(a); 
      } 
     // return offer.offer_name == $scope.da; 
     console.log($scope.da); 

     }); 

Nach (Nach korrekter Syntax):

$scope.filteredOffers = $scope.myData.filter(function(a) {      
      if (check condition) 
      { 
       return true ;// when true is returned the json held in a gets pushed into the filteredOffers array     
      } 
      else{ 
       return false;//when false is returned, the json held in 'a' is ignored and not pushed into the filteredOffers array 
      }  
     }); 

Array.filter's Doc Link Aber es ist etwas falsch mit der Logik, die Sie verwendet haben. Wenn Sie mir genau sagen können, was Sie versuchen, kann ich Ihnen vielleicht helfen.

+0

i freundlich meinen Code aktualisieren verstehen nicht –

+0

Ich möchte im Namen des Query-String-Daten anzuzeigen, die auf übergeben ist/umgehen? OFFER_NAME, sollten diese auf JSON-Datei suchen und anzuzeigen, in dem sie die diese Parameter –

0

Wenn Sie JSON und Arrays häufig in Ihrer Anwendung verarbeiten, ist es besser, lastash oder Unterstriche in Ihre Anwendung zu integrieren.

Fügen Sie den folgenden Code zu Ihrem HTML hinzu, bevor Sie die Controller-Datei laden.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

Nach der Antwort von http://tools.vcommission.com/api/coupons.php?apikey=e159f64e3dd49fddc3bb21dcda70f10c6670ea91aac30c7cb1d4ed37b20c45b8 suchen Code unten, werden Sie das Array geben, der die OFFER_NAME übereinstimmt.

 $http.get("http://tools.vcommission.com/api/coupons.php?apikey=e159f64e3dd49fddc3bb21dcda70f10c6670ea91aac30c7cb1d4ed37b20c45b8").then(function (response) { 

     $scope.filteredOffers = []; 
     var offerName = $stateParams.offer_name; 
     $scope.filteredOffers = _.filter(response.data, ["offer_name",offerName]); 

     }) 
+0

finden sie Geben Syntaxfehler SyntaxError: fehlt) nach Argumentliste –

+0

freundlicherweise aktualisieren Sie meine Controller –

+0

Aktualisiert die Antwort. Kopieren und fügen Sie diesen Code in Ihren Controller ein, der Ihnen genau das bietet, wonach Sie suchen. –