首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子无限滚动与漂移分页数据?

离子无限滚动与漂移分页数据?
EN

Stack Overflow用户
提问于 2015-05-24 06:50:22
回答 2查看 3.2K关注 0票数 2

我到处乱搞离子,并使用dribbble数据只是为了玩。我不知道A.我如何查询运球以显示前15之后的帖子,api就在这里http://api.dribbble.com/shots/everyone,如果我想获得更多信息,我可以像http://api.dribbble.com/shots/everyone?page=2一样请求页面2

如何在不与旧项目冲突的情况下将项目传递到模板中?

代码语言:javascript
复制
/**
 * Dashboard Controller. (must be authenticated)
 *
 */
.controller('DashController', function($scope, $state, DribbbleData, $http) {

  $scope.items = [];

  $scope.initialize = function() {
    DribbbleData.getData().then(function(res) {
      console.log(res);
      $scope.items = res.data.shots;
    }, function(status) {
      console.log('error')
    })
  }

  $scope.loadMore = function() {
    $http.jsonp('http://api.dribbble.com/shots/everyone?callback=JSON_CALLBACK').success(function(items) {
      console.log(items);
      var test = $scope.items;
      console.log(test)
      //$scope.items = items;
      //useItems(items);
      $scope.$broadcast('scroll.infiniteScrollComplete');
    });
  };

  $scope.$on('$stateChangeSuccess', function() {
    $scope.loadMore();
  });

  $scope.initialize();
})

视点

代码语言:javascript
复制
<ion-view view-title="Dashboard">
  <ion-content class="padding">

    <ion-list>
      <div class="list card" data-ng-repeat="item in items">
        <div class="item item-title">
          <h2>{{item.title}}</h2>
        </div>
        <div class="item item-body">
          <img class="full-image" ng-src="{{item.image_url}}">
          <p>
            <a href="#" class="subdued">{{item.likes_count}} Like</a>
            <a href="#" class="subdued">{{item.comments_count}} Comments</a>
          </p>
        </div>
        <div class="item tabs tabs-secondary tabs-icon-left">
          <a class="tab-item" href="#">
            <i class="icon ion-thumbsup"></i>
            Like
          </a>
          <a class="tab-item" href="#">
            <i class="icon ion-chatbox"></i>
            Comment
          </a>
          <a class="tab-item" href="#">
            <i class="icon ion-share"></i>
            Share
          </a>
        </div>
      </div>
    </ion-list>

    <ion-infinite-scroll on-infinite="loadMore()" distance="1%">
    </ion-infinite-scroll>

  </ion-content>
</ion-view>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-24 07:03:07

如果您确信没有重复项,只需将以下项目连接起来:

代码语言:javascript
复制
$scope.items = $scope.items.concat(items);

如果没有,最好的做法是跟踪列表中当前的项目,并且只在尚不存在的情况下添加:

代码语言:javascript
复制
var itemIds = {};

function addItems(items) {
  items.forEach(function (item) {
    if (itemsIds[item.id]) {
      return;
    }
    $scope.items.push(item);
    itemIds[item.id] = true;
  }
}

要处理分页,只需在成功回调中增加一个计数器。例如:

代码语言:javascript
复制
  var nextPage = 2;

  $scope.loadMore = function() {
    $http.jsonp('http://api.dribbble.com/shots/everyone?callback=JSON_CALLBACK&page=' + nextPage).success(function(items) {
      nextPage++;
      addItems(items);
      $scope.$broadcast('scroll.infiniteScrollComplete');
    });
  };
票数 4
EN

Stack Overflow用户

发布于 2015-05-24 06:58:59

您将希望在ajax完成时将新项添加到$scope.items数组中

代码语言:javascript
复制
  $scope.loadMore = function() {
    $http.jsonp('http://api.dribbble.com/shots/everyone?callback=JSON_CALLBACK').success(function(items) {
      // Add all the new items
      items.forEach(function(newItem) {
        $scope.items.push(newItem);
      });
      $scope.$broadcast('scroll.infiniteScrollComplete');
    });
  };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30420849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档