ionic3反向传值的补充说明:关于如何 pop with params (CallBack)

本文系原创,转载请注明出处,谢谢 !

自从出了上一篇关于ionic 反向传值的笔记以后,有不少小伙伴留言或者私信我说看不太懂,实现不了效果,我反思了一下,觉得可能由于上一篇的内容比较杂乱,而且当时写博客的水平有限,所以导致有点词不达意,没有把关键内容表达清楚,故又准备了这篇笔记和一个干净整洁、一针见血的demo,希望对于初学者有所帮助,也欢迎大家与我一起探讨关于ionic 开发的技术点.

本文参考链接:https://forum.ionicframework.com/t/solved-ionic2-navcontroller-pop-with-params/58104
先上效果图:

result.gif

demo代码说明:demo是一个空白的tab项目,逻辑如下图:

callBackLogic.png
pop with params 回调目前有两种方式 :

按照惯例,先贴代码

  • push方法 1 ->HomePage (这段是回调的关键)
// 用于pop 回调的 block
   myCallbackFunction  =(params) => {
     return new Promise((resolve, reject) => {

      if(typeof(params)!='undefined'){
          resolve('ok');
          console.log('回调1: '+ params);
      }else{

          reject(Error('error'))
      }
            
   });
 }

// 按钮点击事件
pushClick(){

   this.navCtrl.push(PagePushedPage, {
    callback: this.myCallbackFunction
})
  • push方法 1 ->pushPage
export class PagePushedPage {
  callback
  constructor(public navCtrl: NavController,
              public navParams: NavParams) {
    this.callback = this.navParams.get("callback")
  }
  
  ionViewDidLoad() {
    console.log('ionViewDidLoad PagePushedPage');
  }
  
  goBack(){
   let param = '我是来自Push的值'
   this.callback(param).then(()=>{
    this.navCtrl.pop();
   });
  }
}
  • push方法 2 ->HomePage
push2Click(){
     this.events.subscribe('custom-user-events', (paramsVar) => {

            console.log('回调push2: '+ paramsVar);

            this.push2param = paramsVar
            this.events.unsubscribe('custom-user-events'); 
        })

        this.navCtrl.push(Push2Page);
   }
  • push方法 2 ->push2Page
goBack(){
   this.navCtrl.pop().then(() => {
        this.events.publish('custom-user-events', '我是来自push2页面的值');
    });
  }
push方法完毕! So easy , too happy!
  • present方法-> HomePage
presentClick(){

    let presentPageModal = this.modalCtrl.create(PresentPage)
    presentPageModal.onDidDismiss(data => {
      console.log('回调2: '+ data);

    })
    presentPageModal.present()
     
 }
  • present方法-> presentPage
goback(){
    this.viewCtrl.dismiss("我是来自Present的值")
  }
present方法完毕! over!
注意:本人作为一名原iOS开发者,想从第一语言的角度给大家一些建议
* 1. 在原生里面页面的跳转方式有2种  push , present,返回也有2种方式:pop,dismiss,他们是一一对应的,即: push->pop,present->dismiss,这点大家一定要清楚
* 2. push的效果是从右面出来,present的效果是从下面modal出来的
* 3. push和pop是一个压栈和出栈的过程,所以,千万不要2个页面相互push! 如果你不信,可以试一下,你从A pushB,从B push到C,如果你需要回到B,你用了push,那你数一下吧,你需要点多少次返回按钮才能回到A
* 4. 如果大家在实际开发过程中,有一些解决不了或者非常想探讨的问题,欢迎大家留言或者私信我,也可以加入我们的QQ群:64903116,进群的小伙伴请自觉备注第一开发语言,以便能更精准的帮你解答问题,谢谢!
* 5. 我希望大家发出的问题都是在经过一番查阅无果之后,才提出的,对于那些问:ionic 是什么,怎么搭建环境,用什么开发工具的小伙伴,恕我不知从何说起

本文补充链接:
ionic跨页面回传值

demo可以在这里下载

如果我写的文章正好解决了你此时此刻遇到的某个小问题,那么请点个赞吧^^!

本人作为一个 ionic 初学者,很多js ,anjular ,cordova ,es6 相关的知识有所欠缺,故很多东西仅停留在会用的层面上,如有不足之处,欢迎大家批评指正,谢谢 !

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,427评论 25 707
  • 下面部分内容是参考孙亖的使用Ionic2开发Todo应用,最好先动手实现一下他的代码,或者看一次。 0 创建新的I...
    欢乐的乐阅读 4,392评论 3 6
  • 9月12日今天我陪急需彩妆的朋友挑选口红,并买了两只她喜欢的送给她,种下了好种子,希望她越来越美丽动人,心想事成!...
    顺路99阅读 132评论 0 1
  • 清文宗咸丰六年,公元1856年,第二次鸦片战争爆发了。1860年9月英法联军逼近北京,京城震动。咸丰皇帝急忙带着他...
    歌艺阅读 808评论 0 1
  • 迭代器模式介绍 定义 提供一种方法访问一个容器中的元素,而又不暴露该对象的内部细节. 使用场景 遍历一个聚合对象,...
    Chauncey_Chen阅读 415评论 0 3