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 相关文章推荐
JS中剪贴板兼容性、判断复制成功或失败
Mar 09 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
Nov 20 Javascript
jquery 扑捉回车键事件代码
Apr 24 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
Aug 18 Javascript
JavaScript中的console.assert()函数介绍
Dec 29 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
JsChart组件使用详解
Mar 04 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
Dec 28 Javascript
详解一些适用于Node.js的命名约定
Dec 08 Javascript
vue created钩子函数与mounted钩子函数的用法区别
Nov 05 Javascript
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
原生js实现放大镜组件
Jan 22 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 表单提交给自己
2008/07/24 PHP
php中计算时间差的几种方法
2009/12/31 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
使用jspdf生成pdf报表
2015/07/03 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
js的各种数据类型判断的介绍
2019/01/19 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
python实现图片识别汽车功能
2018/11/30 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
学习Python爬虫的几点建议
2020/08/05 Python
基层干部十八大感言
2014/01/19 职场文书
优秀团队获奖感言
2014/02/19 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
element tree树形组件回显数据问题解决
2022/08/14 Javascript