Pesquisa de site

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

Artigos relacionados