web-dev-qa-db-fra.com

comment obtenir un objet entier avec navParams - Ionic 3 Angular 4

je passe actuellement l'objet de données d'une page à une autre (en modal).

J'ai 8 paramètres à passer à la vue modale.

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

Comment puis-je obtenir des données d'objet entier en un seul appel

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

Je suis incapable de trouver une méthode dans une documentation pour obtenir un objet entier.

3
Murlidhar Fichadia

Vous n'avez pas besoin de faire comme ça. Vous pouvez envoyer tout en même temps comme ci-dessous.

Remarque: Déclarer un objet de transfert de données comme DtoMy

Dto-my.ts

export class DtoMy {
    firstPassed: string;
    secondPassed: string;

    //your other properties
}

envoyer

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();

Recevoir:

my-modal-page.ts

data :DtoMy;

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

Pour pouvoir obtenir un objet entier dans la deuxième page, vous pouvez essayer ce qui suit:

Pour envoyer:  

constructor(public navCtrl: NavController, public navParams : NavParams){}

 public userObject = 
 {
  firstName : "peter",
  lastName  : "haddad"
 }

clickMe()
{
  this.navCtrl.Push(SecondPage,this.userObject);
}

Vous importez à la fois NavController et NavParams, puis utilisez la méthode Push() qui contiendra l’objet que vous voulez transmettre et la navigation vers la deuxième page.

Dans la deuxième page:

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);
  }
}

Ici, vous pouvez accéder à l'objet en utilisant le membre de l'instance data of NavParams, pour pouvoir accéder à lastName, vous pouvez le faire this.lastName=this.userObject.lastName

1
Peter Haddad
constructor(public navCtrl: NavController, public navParams: NavParams) {
console.log(this.navParams.data)
}
0
vivek rk