typescript - como obter o objeto inteiro usando navParams - Ionic 3 Angular 4
atualmente estou passando um objeto de dados de uma página para outra página (no Modal).
Eu tenho 8 parâmetros para passar para a visualização modal.
this.firstParam = navParams.get("firstPassed");
this.secondParam = navParams.get("secondPassed");
.
.
.
this.eightParam = navParams.get("eightPassed");
Como posso obter todos os dados de um objeto usando uma única chamada
this.data = navParams.getAll(); //something like this
Não consigo encontrar um método na documentação para obter um objeto inteiro.
Resposta #1
Você não precisa fazer assim. Você pode enviar tudo de uma vez como abaixo.
Nota: Declare um objeto de transferência de dados como DtoMy
Dto-my.ts
export class DtoMy {
firstPassed: string;
secondPassed: string;
//your other properties
}
enviar
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();
Receber:
minha-pagina-modal.ts
data :DtoMy;
constructor(private navParams: NavParams, private modalCtrl: ModalController) {
this.data = this.navParams.get('data');
}
Resposta #2
Para poder obter um objeto inteiro na segunda página, você pode tentar o seguinte:
Para enviar:
constructor(public navCtrl: NavController, public navParams : NavParams){}
public userObject =
{
firstName : "peter",
lastName : "haddad"
}
clickMe()
{
this.navCtrl.push(SecondPage,this.userObject);
}
Você importa tanto o NavController quanto o NavParams, então usa o método push() que conterá o objeto que você deseja passar e ele navegará para a segunda página.
Na segunda página:
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);
}
}
Aqui você pode acessar o objeto usando o membro de instância data de NavParams, para poder acessar o lastName, você pode fazer assim this.lastName=this.userObject.lastName
