ionic 页面传值问题

1.将数据传递到要跳转到的页面 (1)push() 要将新页面推送到堆栈,可使用push方法。同时也可以通过将数据传递给push方法的第二个参数,来将数据传递给下一个页面。 import {LoginPage } from'./login'; ... pushPage(){     this.navCtrl.push(LoginPage, {       id: 123,       name: "Carl" }); (2)[navParams]属性: import {LoginPage } from'./login'; ... @Component() class MyPage {   params;   pushPage: any;   constructor(){     this.pushPage= LoginPage;     this.params ={        id:123,       name: "Carl"     };   } } 然后在模板中跳转: (3)modal的create方法(与push()同理,数据作为create()方法的第二个参数) import {LoginPage } from'./login'; ... presentLoginPage() {  let modal =this.modalCtrl.create(LoginPage ,      { id:123,name: "Carl"}  );  modal.present(); } 数据传递到下个页面后,该页面如何接收呢? 用NavParams来接收数据。 首先导入NavParams ,然后注入到构造函数。 import { NavParams } from 'ionic-angular';  ... userInfo; constructor(public params: NavParams) {        this.userInfo = params.data;   }  这就可以得到整个对象。也可以使用params的get()方法接收,传入对象属性作为get()的参数 this.params.get('id'); 则将得到:123 2.将数据传递到Tabs的页面,用[rootParams]属性: 首先将数据按上方法传递到Tabs并接收(比如接收为userInfo),然后在Tabs模板中将数据传递到要传递的页面: ...     ...   加入[rootParams]属性,将把数据userInfo传递到该页面,然后在该页面再用params接收即可。 3.使用Events发布订阅事件: 上面所说的方法,只能传递到要跳转到的页面。 如果要把数据传递到任何一个页面,使用Events,官网点这里 。 发布页面: import { Events } from 'ionic-angular';    //导入 ... export class EventsPage {   user = '来自Events的数据'     constructor(public events: Events) {}     publishEvents(user) {     console.log('User created!')     this.events.publish('user:created',this.user, Date.now());     console.log(this.user)   } } 要接收数据的页面(订阅页面): import { Component} from '@angular/core'; import { Events } from 'ionic-angular';   @Component({   selector: 'page-home',   templateUrl: 'home.html' }) export class HomePage {   myEvent;   constructor(public events: Events) {     events.subscribe('user:created', (user, time) => {       HomePage.prototype.myEvent = user;      });   } } 订阅必须再发布之前,不然接收不到。打个比喻:比如微信公众号,你要先关注才能接收到它的推文,不然它再怎么发推文,你也收不到。 另外,.subscribe()方法中有点this作用域的问题,可以简单粗暴的用原型指定:HomePage.prototype.myEvent 如有错误,请大佬们指出,不胜感激! ---------------------  作者:神奇的小卷毛  来源:CSDN  原文:https://blog.csdn.net/qq993284758/article/details/77679283  版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值