ionic2中的LoadingController用法。在数据加载完之前显示
来源:互联网 发布:如何防止成为备胎 知乎 编辑:程序博客网 时间:2024/05/17 00:19
三种用法:
import { Component } from '@angular/core';import { IonicPage, NavController, NavParams,App, ViewController} from 'ionic-angular';import { LoadingController, Loading } from 'ionic-angular';@IonicPage()@Component({ selector: 'page-popover', templateUrl: 'popover.html',})export class PopoverPage { id:any=this.navParams.get("id"); name:any=this.navParams.get("name"); public items:any; constructor( public navCtrl: NavController, public navParams: NavParams, public appCtrl: App, public viewCtrl: ViewController, public loadingCtrl: LoadingController ) { } ionViewDidLoad() { console.log("I'm alive!"); } // 1.默认形式仅显示数据在加载 presentLoadingDefault() { let loading = this.loadingCtrl.create({ content: 'Please wait...'//数据加载中显示 }); loading.present(); setTimeout(() => { loading.dismiss();//显示多久消失 }, 5000); }// 2.隐藏加载动画图标用法,并在组件中添加模板用法 presentLoadingCustom() { let loading = this.loadingCtrl.create({ spinner: 'hide',// 是否有加载的gif动图 content: ` <div class="custom-spinner-container"> <div class="custom-spinner-box">1111111111</div> </div>`, duration: 5000 }); loading.onDidDismiss(() => { console.log('Dismissed loading'); }); loading.present(); }// 3.带内容并且跳转到其他页面 presentLoadingText() { let loading = this.loadingCtrl.create({ spinner: 'hide', content: 'Loading Please Wait...' }); loading.present(); setTimeout(() => { this.navCtrl.push("HomePage"); }, 1000); setTimeout(() => { loading.dismiss(); }, 1000); }}效果:第三个图维持三秒后会跳转页面
实际结合数据请求来使用例子
思路是将loding显示状态封装在一个方法里面,关闭显示封装在一个方法里面。当请求数据的时候传入一个参数来判断是否显示加载状态。如果是就调用封装好的loding方法。当请求数据返回时调用关闭显示方法;
/** * 统一调用此方法显示loading * @param content 显示的内容 */showLoading(content: string = ''): void { if (!this.loadingIsOpen) { this.loadingIsOpen = true; this.loading = this.loadingCtrl.create({ content: content }); this.loading.present(); setTimeout(() => { //最长显示10秒 this.loadingIsOpen && this.loading.dismiss(); this.loadingIsOpen = false; }, 10000); }};/** * 关闭loading */hideLoading(): void { this.loadingIsOpen && this.loading.dismiss(); this.loadingIsOpen = false;};
在数据请求的地方调用两个方法;
//post方法httpPost(params:any,content:any = null,showLoad: boolean = null) { if (!showLoad) { //在请求数据的地方传入是否需要显示loading this.showLoading("数据加载中");//调用loading方法显示加载状态 } return new Promise((resolve, reject) => { this.http.post(API_BASE_URL_STRING, this.pramas(params),header).map(result=>result.json() ).subscribe(data => { resolve(this.security.decrypt(data, this.key)); this.hideLoading();//有数据返回的时候调用关闭loading的方法 }, err => {//请求错误 console.log(err); }); }) }
阅读全文
0 0
- ionic2中的LoadingController用法。在数据加载完之前显示
- Ionic2显示数据
- LoadingController
- 如何实现在页面上所有内容加载完之前一直显示loading...页面?
- WebView在加载完成之前显示loading图标
- ionic2 读取存储在数据库中的ionic前台代码,并在前台页面显示
- Android加载数据过程中的菊花显示
- Android加载数据过程中的菊花显示
- vue js框架 设置加载数据之前不显示html代码
- 图片加载之前显示 加载中或者加载中图片
- ajax返回数据之前加载loading图标
- 经验分享之前台显示表格数据
- Flex中在DataGrid加载数据时显示Loading...
- 在程序启动之前显示一个画面
- 在程序启动之前显示一个画面
- sqlite数据库在程序打包之前清除所有表中的数据
- ProgressDialog,数据加载显示
- 加载数据之前的加载等待中效果
- mvc框架上传文件-1
- Java基础(二)运算符
- 数字黑洞 (20)
- 支付宝接口使用文档说明 支付宝异步通知(notify_url)与return_url
- myeclipse->project->clean…到底有什么用
- ionic2中的LoadingController用法。在数据加载完之前显示
- JQ模态窗口自适应
- (闲来无事)栈的实现
- 为什么要用nodejs当做前台 java当做后台
- Kotlin-实体类反射获取字段属性和该属性的值
- 网络问题有台集群节点起不来
- 适配iOS11&iPhoneX的一些坑
- jQuery学习笔记(五)_添加删除元素
- MyEclipse2016 ci7完美破解(新帖),详细图文介绍破解本人2017-09-25亲测