【问题标题】:how to get entire object using navParams - Ionic 3 Angular 4如何使用 navParams 获取整个对象 - Ionic 3 Angular 4
【发布时间】:2018-04-10 14:04:24
【问题描述】:

目前我正在将数据对象从一个页面传递到另一个页面(在模态中)。

我有 8 个参数要传递给模态视图。

this.firstParam = navParams.get("firstPassed");
this.secondParam = navParams.get("secondPassed");
.
.
.
this.eightParam = navParams.get("eightPassed");

如何使用一次调用获取整个对象数据

this.data = navParams.getAll(); //something like this

我无法在文档中找到获取整个对象的方法。

【问题讨论】:

    标签: angular typescript ionic-framework ionic3


    【解决方案1】:

    你不需要那样做。您可以像下面这样一次发送所有内容。

    注意:声明一个数据传输对象,如DtoMy

    Dto-my.ts

    export class DtoMy {
        firstPassed: string;
        secondPassed: string;
    
        //your other properties
    }
    

    发送

    let dtoMy = new DtoMy();
    dtoMy.firstPassed= 'firstPassed';
    dtoMy.secondPassed= 'secondPassed';
    //your other values
    
    const myModal = this.modalCtrl.create('MyModalPage', { data: dtoMy });
        myModal.onDidDismiss(data => { });
        myModal.present();
    

    接收:

    my-modal-page.ts

    data :DtoMy;
    
    constructor(private navParams: NavParams, private modalCtrl: ModalController) {
          this.data = this.navParams.get('data');
      }
    

    【讨论】:

      【解决方案2】:

      为了能够在第二页中获取整个对象,您可以尝试以下操作:

      发送:

      constructor(public navCtrl: NavController, public navParams : NavParams){}
      
       public userObject = 
       {
        firstName : "peter",
        lastName  : "haddad"
       }
      
      clickMe()
      {
        this.navCtrl.push(SecondPage,this.userObject);
      }
      

      您导入 NavController 和 NavParams,然后使用方法 push() 将包含您要传递的对象并导航到第二页。

      在第二页:

      export class SecondPage 
      {
      
       userObject;
       userName;
      
       constructor(public navCtrl: NavController, public navParams: NavParams){}
      
        ngOnInit()
        {
        this.userObject = this.navParams.data;
        this.userName   = this.userObject.firstName;
        console.log(this.userObject);
        }
      }
      

      这里你可以使用NavParams的实例成员data来访问对象,为了能够访问lastName,你可以这样做this.lastName=this.userObject.lastName

      【讨论】:

        【解决方案3】:
        constructor(public navCtrl: NavController, public navParams: NavParams) {
        console.log(this.navParams.data)
        }
        

        【讨论】:

        • 考虑为您的答案添加一些解释。
        • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation would greatly improve its long-term value 通过展示为什么这是一个很好的解决问题的方法,并将使其对未来有其他类似问题的读者更有用。请edit您的回答添加一些解释,包括您所做的假设。 - From Review
        猜你喜欢
        • 2018-07-16
        • 2018-03-28
        • 2017-12-27
        • 2019-07-23
        • 2017-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多