0

私は ngInfiniteScroll を使用しましたが、小さな問題があります。たとえば、20 の変数項目に一連のデータがありますが、最初のビューで 5 を表示し、残りをスライドで表示したいと考えています。しかし、私のコードは最初のビューで20個すべてをロードします。どうすればこれを達成できますか。以下のコードとデータ構造を指定しました

{
"data": [ {
                "name": "Hoarding Majestic",
                "code": 456,
                "image": "assets/images/images/hoarding1.jpg",
                "location": "Majestic"


            },
            {
                "name": "BusShelter ForumMall",
                "code": 452,
                "image": "assets/images/images/hoarding2.jpg",
                "location": "Whitefield"


            },
            {
                "name": "Digital Vijayanagar",
                "code": 458,
                "image": "assets/images/images/hoarding3.jpg",
                "location": "Vijayanagar"


            },
            {
                "name": "Digital Vijayanagar",
                "code": 458,
                "image": "assets/images/images/hoarding3.jpg",
                "location": "Vijayanagar"



            }
         ]
}

html:-

<div layout="row" layout-align="space-around" layout-padding infinite-scroll='loadMore()' infinite-scroll-distance='2' 
                    infinite-scroll-disabled='{{busyLoadingData}}'  infinite-scroll-container = "'#content'">
<table class="simple">
<thead>
  <tr>
     <th class="secondary-text">
        <div class="table-header">
           <span class="column-title">Asset</span>
        </div>
     </th>
     <th class="secondary-text">
        <div class="table-header">
           <span class="column-title">Location</span>
        </div>
     </th>

  </tr>
  </thead>
  <tbody>
  <tr ng-repeat="assets in items">
     <!--| priceRange:slider:lower:upper-->

     <td>{{assets.name}}</td>

     <td>{{ assets.location }}</td>

  </tr>

 </tbody>
 </table>
 </div>

と私のコントローラー:-

$scope.data = booking.data;
$scope.busyLoadingData = false;
$scope.items = [];
$scope.loadMore = function() { 
//console.log("asdfasdfasd");
if($scope.busyLoadingData)
   return;
   $scope.busyLoadingData = true;
     var last = $scope.data[$scope.data.length - 1];
    for(var i = 0 ; i <= 5; i++) {
      $scope.items.push($scope.data[i]);
      //console.log(last);
    } 
    $timeout(function(){$scope.busyLoadingData = false; }, 3000 );
};
4

1 に答える 1

0

無限スクロール要素が行うべきことと同様にng-infinite-scroll、一度に表示できるよりも多くのデータをロードしています。これは、データが少なくなったり、データが残っていてもユーザーが底に到達したりするのを防ぐためです。このデモでその効果をはっきりと見ることができます。ページの下部にまだスペースが残っている場合でも、データの読み込みが開始されます。

于 2016-02-11T14:21:50.933 に答える