Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解


Posted in Javascript onMarch 13, 2018

1.Ionic3.x 页面正向传值

关于正向传值,上一篇文章里面有讲,具体可以看这里:https://3water.com/article/136302.htm

2.Ionic3.x 页面 pop反向传值,主要有两种方式

     1 .利用ES6提供 Promise 对象

     2 利用Ionic3.x提供Event对象,观察者模式(publish/subscribe)

1)利用ES6提供 Promise 对象

这边假设有两个页面A页面, B页面, 情景如下,A跳转B页面,在B页面返回A页面需要给A页面选回的值。

A页面代码

html内容

<button (tap)="goToBPage()">跳转到B页面</button>

ts 内容:

import BPage from './BPage'
export class APage{
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
// 用于pop 回调的 block
callBackFromB =(params) => {
 return new Promise((resolve, reject) => {
 if(params){
  resolve('成功取到B页面返回的参数');
  console.log('B页面参数为: '+ params);
 }else{
  reject(‘取回B页面数据失败')
 }
 });
 }
 goToBPage (){
 this.navCtrl.push(BPage, {
 callback: this.callBackFromB
 })
 }
}

备注:Promise是由Es6提供的一个对象,new一个对象,有两个回调函数,一个是resove,一个是reject,resove是执行成功的回调,也就是我们调用 then执行的方法, reject是执行失败的回调,对应 是调用 catch方法 ,现在es7新出一async和await,async是对Promise的进一步封装,详情可具体看官方文档!

B页面代码

ts 内容:

constructor(public navCtrl: NavController, public navParams: NavParams) {
// 获取对面A传过来的回调方法
 this.callback = this.navParams.get("callback")
 
}
 goBack(){
 let param = '我是要给A页面数据'
 this.callback(param).then(()=>{
 // pop返回方法
 this.navCtrl.pop();
 });
 }

1)利用Ionic3.x提供Event对象,观察者模式(publish/subscribe)

event对象主要有3个方法

1.发布publish(topic, eventData)

`参数一是发布事件名字,第二个参数就是要发送数据,其实还可以传送第三,第四...等,都 是可以传送数据的

2.订阅 subscribe(topic, handler)

参数一是要接收的事件铝管,第二个参数代表发布时传送的参数,如果发布有传第三个参数,同样的订阅的第三个参数就是对应的发布的第三个参数,以此类推....`

3.取消订阅 unsubscribe(topic, handler)

参数一是要取消订阅的事件的名称,第二是一个回调函数,返回值:如果被移除成功,返回true
实现反向传值代码如下

A页面代码

ts代码

goToBPage(){
 this.events.subscribe('bevents', (params) => {
  // 接收B页面发布的数据
  console.log('接收数据为: '+ paramsVar);

  // 取消订阅
  this.events.unsubscribe('bevents'); 
 })
 this.navCtrl.push(BPage);
 }

B页面代码

ts代码

goBack(){
 this.navCtrl.pop().then(() => {
 // 发布 bevents事件
 this.events.publish('bevents', '我是B页面数据');
 });
}

总结

以上主要介绍反向传值的2种方法,当然还有其它方法,如果你有更好 的方法,欢迎留言讨论,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Jquery获取和修改img的src值的方法
Feb 17 Javascript
js创建对象的方式总结
Jan 10 Javascript
javascript实现当前页导航激活的方法
Feb 27 Javascript
AngularJS基础 ng-include 指令简单示例
Aug 01 Javascript
javascript表单正则应用
Feb 04 Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 Javascript
Vue导出json数据到Excel电子表格的示例
Dec 04 Javascript
vue v-model动态生成详解
Jun 30 Javascript
详解vue-router数据加载与缓存使用总结
Oct 29 Javascript
用Fundebug插件记录网络请求异常的方法
Feb 21 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
Jun 10 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
Sep 03 Javascript
vue加载自定义的js文件方法
Mar 13 #Javascript
vue轮播图插件vue-concise-slider的使用
Mar 13 #Javascript
vue页面离开后执行函数的实例
Mar 13 #Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
Mar 13 #Javascript
解决vue页面刷新或者后退参数丢失的问题
Mar 13 #Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
Mar 13 #Javascript
解决vue 路由变化页面数据不刷新的问题
Mar 13 #Javascript
You might like
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
python基础教程之while循环
2019/08/14 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
个人思想理论学习的自我鉴定
2013/11/30 职场文书
饭店工作计划书
2014/01/10 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
高中军训感言400字
2014/02/24 职场文书
服务标兵事迹材料
2014/05/04 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
学校安全管理责任书
2014/07/23 职场文书
观后感的写法
2015/06/19 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python