关于正向传值,上一篇文章里面有讲,具体可以看这里:https://www.jb51.net/article/136302.htm
,,,,1 .利用ES6提供承诺对象
,,,,2利用Ionic3.x提供事件对象,观察者模式(发布/订阅)
<强> 1)利用ES6提供承诺对象强>
这边假设有两个页面一页面,B页面,情景如下,一个跳页转B面,在B页面返回一页面需要给一个页面选回的值。
页面代码
html内容
& lt;按钮(tap)=" goToBPage()”在跳转到B页面& lt;/button>
ts内容:
从“进口BPage。/BPage ' 出口类APage { 构造函数(公共navCtrl: NavController、公共navParams: navParams) { }//用于流行回调的块 callBackFromB=(params)=比;{ 返回新的承诺((解决,拒绝)=比;{ 如果(params) { 解决(“成功取到B页面返回的参数”); 控制台。日志(" B页面参数为:' + params); 其他}{ 拒绝(“取回B页面数据失败”) } }); } goToBPage () { this.navCtrl。推动(BPage, { 回调:this.callBackFromB }) } }
备注:承诺是由Es6提供的一个对象,新的一个对象,有两个回调函数,一个是resove,一个是拒绝,resove是执行成功的回调,也就是我们调用然后执行的方法,拒绝是执行失败的回调,对应是调用抓方法,现在es7新出一异步和等待,异步是对承诺的进一步封装,详情可具体看官方文档!
B页面代码
ts内容:
构造函数(公共navCtrl: NavController、公共navParams: navParams) {//获取对面一个传过来的回调方法 这一点。回调=this.navParams.get(“回调”) } 返回(){ 让参数='我是要给一个页面数据的 this.callback(参数),然后(()=祝辞{//流行返回方法 this.navCtrl.pop (); }); }
1)利用Ionic3.x提供事件对象,观察者模式(发布/订阅)
<强>事件对象主要有3个方法强>
1。发布发布(话题,eventData)
'参数一是发布事件名字,第二个参数就是要发送数据,其实还可以传送第三,第四……等,都是可以传送数据的
2。订阅订阅(主题,处理程序)
参数一是要接收的事件铝管,第二个参数代表发布时传送的参数,如果发布有传第三个参数,同样的订阅的第三个参数就是对应的发布的第三个参数,以此类推....”
3。取消订阅退订(主题,处理程序)
参数一是要取消订阅的事件的名称,第二是一个回调函数,返回值:如果被移除成功,返回真正的
实现反向传值代码如下
页面代码
ts代码
goToBPage () { this.events。订阅(“bevents”(params)=比;{//接收B页面发布的数据 控制台。日志(“接收数据为:“+ paramsVar);//取消订阅 this.events.unsubscribe (“bevents”); }) this.navCtrl.push (BPage); }
B页面代码
ts代码
返回(){ this.navCtrl.pop(),然后(()=比;{//发布bevents事件 this.events。发布(“bevents”、“我是B页面数据的); }); }
以上主要介绍反向传值的2种方法,当然还有其它方法,如果你有更好的方法,欢迎留言讨论,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。