2017-10-19 1 views
0

ng-repeat를 사용하여 두 테이블에 배열의 결과를 넣어야합니다.이 배열이 있습니다.두 테이블에 배열 넣기

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

     ]; 

I는 예컨대 제 표의 자료 0,1,2,3 및 제 4,5,6 테이블에 대한 하나 개의 테이블의 첫 번째 4 개 개의 값을 넣을 필요가있다. 나는이 기능을 사용하지만 작동하지 않는다는 것을 어떻게 할 수 있는지 모른다.

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

ng-repeat를 사용하여 첫 번째 테이블에 temp를두고 두 번째 테이블에 temp2를 넣습니다. 그러나 그것은 어떤 아이디어 나 해결책도 가지고 있지 않습니까?

답변

0

당신은 단순히 당신은 배열의 길이를 가지고 2를 나누고 슬라이스에 대한 그것의 둘레에 수

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

DEMO array.slice

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

를 사용할 수 있습니다.

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

나는 많은) (.splice을 선호; 이 메소드는, 실제로, 지정된 인덱스의 요소를 돌려주는 원의 배열로부터 요소를 꺼냅니다.

$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); 
     } 
    } 
}