2016-04-03 13 views
0

ich auf dem dieser Basis haben ydn-db package:ng-Wiederholung nicht mit fusionierte Array Arbeitsobjekte

var db = new ydn.db.Storage('Trans'); 

    var iter_supplier = new ydn.db.IndexValueIterator('stops', 'stop_id'); 
    var iter_part = new ydn.db.IndexValueIterator('times', 'stop_id'); 
    var req = db.scan(function(keys, values) { 
     var SID = keys[0]; 
     var PID = keys[1]; 
     // console.log(SID, PID); 
     if (!SID || !PID) { 
      return []; // done 
     } 
     var cmp = ydn.db.cmp(SID, PID); // compare keys 
     if (cmp == 0) { 
      // console.log(values[0], values[1]); 
      var merged = angular.extend(values[0], values[1]); 
      console.log(merged); 

      $scope.results = merged; 
      // $scope.$apply(function() { 
      //  $scope.results = merged; 
      // }); 

      return [true, true]; // advance both 
     } else if (cmp == 1) { 
      return [undefined, SID]; // jump PID cursor to match SID 
     } else { 
      return [PID, undefined]; // jump SID cursor to match PID 
     } 
    }, [iter_supplier, iter_part]); 

Console in Browser Ergebnisse wie folgt aussieht: enter image description here

Und ich versuche, eine Schleife durch mit ng-Wiederholung als:

<div class="medium-6 columns" ng-repeat="result in results"> 
     <div class="card hoverable"> 
      <div class="content"> 
       <span class="title">{{ result }}</span><small class="float-right">{{result.stop_id}}</small> 
       <div class="divider"></div> 
       <p>Times: {{ result.arrival_time }}</p> 
      </div> 
     </div> 
    </div> 

Ich bekomme nichts in der HTML mit ng-Wiederholung. Es scheint nicht durchzulaufen. Was mache ich falsch?

+0

Wohin sagen Sie dem eckigen.extend, diese erweiterten Werte zu speichern? Dies ist die Dokumentation für 'angular.extend':' angular.extend (dst, src); '. Ich sehe nicht, wo Sie sie in "Merge" – theblindprophet

+0

@theblindprophet mit vollem Code aktualisiert gespeichert. – Rexford

Antwort

0

merged scheint ein einzelnes Objekt zu sein, das derzeit bei jeder Iteration ausgedruckt wird. Soll das results auf dieses einzelne Objekt eingestellt werden oder würden Sie stattdessen nach etwas wie $scope.results.push(merged) suchen, um eine Ergebnisliste zu erstellen?

Es sieht so aus, als ob Sie eine Liste anstelle eines einzelnen Objekts wünschen. Wenn Sie dies nicht tun und stattdessen results ein einzelnes Objekt/Wörterbuch ist, durchlaufen Sie die Schlüssel und Werte unter Verwendung von ng-repeat="(key, value) in results".

Verwandte Themen