ionic select中如何实现下拉加载数据

ionic select中如何实现下拉加载数据,第1张

ionic提供的下拉加载,是要滑动去下拉加载,没有提供api自动触发下拉加载,比如刚进页面,或者切换tab时想触发一次下拉加载。

添加如下service:

angular.module('YourApp').service('utilities', function() {this.triggerScrollViewPullToRefresh = function (scrollView) {

scrollView.__publish(

scrollView.__scrollLeft, -scrollView.__refreshHeight,

scrollView.__zoomLevel, true) var d = new Date()

scrollView.refreshStartTime = d.getTime()

scrollView.__refreshActive = true

scrollView.__refreshHidden = false if (scrollView.__refreshShow) {

scrollView.__refreshShow()

}if (scrollView.__refreshActivate) {

scrollView.__refreshActivate()

}if (scrollView.__refreshStart) {

scrollView.__refreshStart()

}

}

})

然后在你的controller里添加方法:

angular.module('YourApp').controller('YourController', function($scope, $ionicScrollDelegate, utilities) {

$scope.someFunc = function() { // scrollerHandle should be the delegate-handle set on the scrollview

$scope.scrollDelegate = $ionicScrollDelegate.$getByHandle('scrollerHandle')

utilities.triggerScrollViewPullToRefresh($scope.scrollDelegate.getScrollView())

}

})

只要在你想触发的地方调用$scope.someFunc 就可以触发下拉刷新

1.动态生成 ion-slide 报错 

原因:页面渲染完成时,接口尚未完成取值,所以页面的 banners 为 undefined

解决方案

html:

<ion-slides *ngIf="banners?.length >1" autoplay="4000" loop="true" class="height-200">

      <ion-slide*ngFor="let banner of banners">

        <img style="width:100%"  [src]="FILE_SERVE_URL+banner.imgUrl">

      </ion-slide>

    </ion-slides>

2.手动出发ion-slide 滚动后 autoplay 属性失效

加上:this.slides.autoplayDisableOnInteraction = false即可

如果是从接口获取的slide,则需要加一个setTimeout()方法延时调用该属性,否则会报错slides is not define

3.切换页面时导致轮播失效

ionViewDidEnter()中加上:this.slides.startAutoplay()

ionViewWillLeave()中加上:this.slides.stopAutoplay()

如果是接口获取的slide,同上添加setTimeout()方法延时加载

ionic2页面堆叠(个人理解)导致页面只请求一次,需求需要每打开一次页面请求一次,百度半天找不出相似的方法。

最后找到了一个大神的记录,在此借用一下。

(不会变表格。。。)

ionViewDidLoad 页面加载完毕触发。该事件发生在页面被创建成 DOM 的时候,且仅仅执行一次。如果页面被缓存(Ionic默认是缓存的)就不会再次触发该事件。该事件中可以放置初始化页面的一些事件。

ionViewWillEnter即将进入一个页面变成当前激活页面的时候执行的事件。

ionViewDidEnter 进入了一个页面且变成了当前的激活页面,该事件不管是第一次进入还是缓存后进入都将执行。

ionViewWillLeave将要离开了该页面之后变成了不是当前激活页面的时候执行的事件。

ionViewDidLeave 在页面完成了离开该页面并变成了不是当前激活页面的时候执行的事件。

ionViewWillUnload 在页面销毁和页面中有元素移除之前执行的事件。

ionViewDidUnload在页面销毁和页面中有元素移除之后执行的事件

在这里ionViewWillEnter和ionViewDidEnter都会在进入页面时执行,但是ionViewWillEnter会先执行。已修改工程,暂时未见什么问题。

ionViewWillEnter同时适用于 this.nav.Ctrl.push()跳转,自动生成的返回按钮点击返回亲测有效。this.app.getRootNav().push()无效。

解决一大难题啊!哈哈~

刚记完笔记回去,页面就报错了(啪啪啪打脸)。ionViewWillEnter和ionViewDidEnter同时用会报错去掉一个就行,will,did这是一个问题。。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6710435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存