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 相关文章推荐
javascript实现上传图片前的预览(TX的面试题)
Aug 20 Javascript
Extjs TimeField 显示正常时间格式的代码
Jun 28 Javascript
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
Jun 23 Javascript
node.js中的querystring.unescape方法使用说明
Dec 10 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
Apr 15 Javascript
jQuery多个版本和其他js库冲突的解决方法
Aug 11 Javascript
微信小程序template模板实例详解
Oct 27 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 Javascript
es6中Promise 对象基本功能与用法实例分析
Feb 23 Javascript
Webpack3+React16代码分割的实现
Mar 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文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
开启PHP的伪静态模式
2015/12/31 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
一篇不错的Python入门教程
2007/02/08 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
python socket 聊天室实例代码详解
2019/11/14 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
农民工预备党员思想汇报
2014/09/14 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
会计稽核岗位职责
2015/04/13 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
一文解答什么是MySQL的回表
2022/08/05 MySQL