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.
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');
}
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
constructor(public navCtrl: NavController, public navParams: NavParams) {
console.log(this.navParams.data)
}