2017-10-19 1 views
0

Ich muss das Ergebnis eines Arrays in zwei Tabellen mit ng-repeat setzen, die ich dieses Array habe.ein Array in zwei Tabellen setzen

  $scope.times = [ 
      {"time": "20", "id": 0}, 
      {"time": "50", "id": 1}, 
      {"time": "30", "id": 2}, 
      {"time": "10", "id": 3}, 
      {"time": "85", "id": 4}, 
      {"time": "75", "id": 5}, 
      {"time": "95", "id": 6}, 

     ]; 

Ich brauche nur die ersten 4 Werte in einer Tabelle beispielsweise zu versetzen, die 0,1,2,3-ID in der ersten Tabelle und die 4,5,6 in der zweiten Tabelle. Ich weiß nicht wie ich das machen kann das ich diese Funktion nutze aber nicht arbeite.

Und setzen Sie die Temperatur in der ersten Tabelle und temp2 in der zweiten Tabelle mit ng-repeat. Aber es funktioniert keine Idee oder Lösung?

Antwort

0

Sie können einfach array.slice

$scope.firstTable = $scope.times.slice(0, 3); 
$scope.secondTable = $scope.times.slice(3, 6); 

DEMO

var app =angular.module('testApp',[]); 
 

 
app.controller('testCtrl',function($scope){ 
 
    $scope.times = [ 
 
      {"time": "20", "id": 0}, 
 
      {"time": "50", "id": 1}, 
 
      {"time": "30", "id": 2}, 
 
      {"time": "10", "id": 3}, 
 
      {"time": "85", "id": 4}, 
 
      {"time": "75", "id": 5}, 
 
      {"time": "95", "id": 6}, 
 

 
     ]; 
 
     
 
    $scope.firstTable = $scope.times.slice(0, 3); 
 
    $scope.secondTable = $scope.times.slice(3, 6); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="testApp" ng-controller="testCtrl"> 
 
    <div ng-repeat="arr in firstTable"> 
 
    <h1> first: {{arr.time}} </h1> 
 
    </div> 
 
    <div ng-repeat="arr in secondTable"> 
 
    <h1> second: {{arr.time}} </h1> 
 
    </div> 
 
</body>

0

Sie konnten die Länge des Arrays nehmen und teilen sie durch 2 und runden es zum Schneiden verwendet werden.

var $scope = { times: [{ time: "20", id: 0 }, { time: "50", id: 1 }, { time: "30", id: 2 }, { time: "10", id: 3 }, { time: "85", id: 4 }, { time: "75", id: 5 }, { time: "95", id: 6 }] }, 
 
    part1 = $scope.times.slice(0, Math.round($scope.times.length/2)), 
 
    part2 = $scope.times.slice(Math.round($scope.times.length/2)); 
 

 
console.log(part1); 
 
console.log(part2);
.as-console-wrapper { max-height: 100% !important; top: 0; }

0

Ich ziehe .splice viel(); Diese Methode führt das Element aus dem ursprünglichen Array, das die Elemente an dem angegebenen Index zurückgibt.

$scope.verfica = function() { 
    $scope.temp = []; 
    $scope.temp2 = []; 
    if (!$scope.times) { 
     return; 
    } 
    for (var i = 0; i <= $scope.times.length; i++) { 
    if (i <= 3) { 
    var temp = $scope.times.splice(i, 1) 
    $scope.temp.push(temp); 
    } 
    else if(i>3) { 
    var temp = $scope.times.splice(i, 1); 
     $scope.temp2.push(temp); 
     } 
    } 
}