添加如下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这是一个问题。。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)