Angularjs 网格上可切换布局中的同步项,以及ionic框架中的列表

Angularjs 网格上可切换布局中的同步项,以及ionic框架中的列表,angularjs,ionic-framework,Angularjs,Ionic Framework,我在爱奥尼亚做了一个可切换的布局(网格或列表) 列表 束带 正如您在代码笔中所看到的,用户可以选择显示项目的布局(本例中约为100) 但在滚动项目时存在一些同步问题,导致用户体验不好。 正如您在附件图像中看到的,当用户滚动到列表布局中的第56项时 该项目在网格布局中仍处于第42位 这是由栅格和列表的高度差异造成的 有人能告诉我一些技巧,当用户切换时如何大致同步吗 谢谢。您可以使用$ionicScrollDelegate服务,使用MembersCrollPosition(id)滚动到具有匹配

我在爱奥尼亚做了一个可切换的布局(网格或列表)

列表
束带
正如您在代码笔中所看到的,用户可以选择显示项目的布局(本例中约为100)

但在滚动项目时存在一些同步问题,导致用户体验不好。

正如您在附件图像中看到的,当用户滚动到列表布局中的第56项时

该项目在网格布局中仍处于第42位

这是由栅格和列表的高度差异造成的

有人能告诉我一些技巧,当用户切换时如何大致同步吗


谢谢。

您可以使用$ionicScrollDelegate服务,使用MembersCrollPosition(id)滚动到具有匹配id的元素

因此,当您切换视图时,应该能够使用:ScrollToMemberedPosition([shouldAnimate])

例如:

<ion-toggle ng-model="shouldShowScrollView"></ion-toggle>
<ion-scroll delegate-handle="myScroll" ng-if="shouldShowScrollView">
  <div ng-controller="ScrollCtrl">
    <ion-list>
      <ion-item ng-repeat="i in items">{{i}}</ion-item>
    </ion-list>
  </div>
</ion-scroll>

function ScrollCtrl($scope, $ionicScrollDelegate) {
  var delegate = $ionicScrollDelegate.$getByHandle('myScroll');

  delegate.rememberScrollPosition('my-scroll-id');
  delegate.scrollToRememberedPosition();
  $scope.items = [];
  for (var i=0; i<100; i++) {
    $scope.items.push(i);
  }
}

{{i}
函数ScrollCtrl($scope,$ionicScrollDelegate){
var delegate=$ionicScrollDelegate.$getByHandle('myScroll');
delegate.rememberScrollPosition('my-scroll-id');
scrollToRememberedPosition();
$scope.items=[];

对于(var i=0;i您可以使用$ionicScrollDelegate服务使用rememberScrollPosition(id)滚动到具有匹配id的元素

因此,当您切换视图时,应该能够使用:ScrollToMemberedPosition([shouldAnimate])

例如:

<ion-toggle ng-model="shouldShowScrollView"></ion-toggle>
<ion-scroll delegate-handle="myScroll" ng-if="shouldShowScrollView">
  <div ng-controller="ScrollCtrl">
    <ion-list>
      <ion-item ng-repeat="i in items">{{i}}</ion-item>
    </ion-list>
  </div>
</ion-scroll>

function ScrollCtrl($scope, $ionicScrollDelegate) {
  var delegate = $ionicScrollDelegate.$getByHandle('myScroll');

  delegate.rememberScrollPosition('my-scroll-id');
  delegate.scrollToRememberedPosition();
  $scope.items = [];
  for (var i=0; i<100; i++) {
    $scope.items.push(i);
  }
}

{{i}
函数ScrollCtrl($scope,$ionicScrollDelegate){
var delegate=$ionicScrollDelegate.$getByHandle('myScroll');
delegate.rememberScrollPosition('my-scroll-id');
scrollToRememberedPosition();
$scope.items=[];
对于(var i=0;i