如何获得nav参数的值?

时间:2018-06-11 13:46:18

标签: angular typescript ionic3

我正在使用离子框架在SQLite中创建数据库。 我的问题是我如何获得nav-parameter?

这是我的主页:

enter image description here

这是' html:

<ion-content nopadding>
<ion-list>
    <ion-item-sliding *ngFor="let processo of processos; let i = index">
      <button ion-item (click)="editarProcesso(processo.id)">
          <p>{{ processo.id }}</p>
          <h2> {{ processo.processoNumero}} </h2>
          <p>{{ processo.data }} {{ processo.horaInicio }}</p>
      </button>
      <ion-item-options side="left">
        <button ion-button color="danger" (click)="removeProcesso(processo)"><ion-icon name="trash"></ion-icon></button>
      </ion-item-options>

这是ts

editarProcesso(id){
this.navCtrl.push(HomePage, {
  id : id
});return console.log('id: ',id);}

这是提供者

public getcamposProcesso(id: number) {
return this.dbProvider.getDB()
  .then((db: SQLiteObject) => {
    let sql = 'Select * From Processos WHERE id = ?';
    let data = [id];

    return db.executeSql(sql, data)
      .then((data: any) => {
        if (data.rows.length > 0) {
          let item = data.rows.item(0);
          let processo = new Processos();
          processo.tribunalDaExecucao = item.tribunalDaExecucao;
          processo.tribunalDeprecado = item.tribunalDeprecado;
          processo.processoNumero = item.processoNumero;
          processo.oficioNumero = item.oficioNumero;
          processo.data = item.data;
          processo.horaInicio = item.horaInicio;
          processo.horaFim = item.horaFim;
          processo.local = item.local;
          processo.aeDesignado = item.aeDesignado;
          processo.aeDiligencia = item.aeDiligencia;
          processo.dividaExequenda = item.dividaExequenda;
          processo.despesasProvaveis = item.despesasProvaveis;
          processo.depositario = item.depositario;
          processo.localDeposito = item.localDeposito;


          return processo;
        }

        return null;
      })
      .catch((e) => console.error(e));
  })
  .catch((e) => console.error(e));

}

然而,这是如何尝试获取我的参数:

constructor(
public navCtrl: NavController,
public navParams: NavParams,
  private platform: Platform,
  private sqlite: SQLite,
  private dbProvider: DatabaseProvider,
  private processoProvider : ProcessosProvider,
  private toast: Toast,
  private toastController: ToastController) {

    this.model = new Processos();


      if (this.navParams.data.id){
      this.processoProvider.getcamposProcesso(this.navParams.data.id)
      .then((result : any) =>{
        this.model = result;
        return console.log(this.navParams.data.id);
      }).catch((e) => console.log('Erro ao carregar os campos', e))
    }


  }

这是控制台日志,当我点击带有数据的离子项时,从HTML下面的脚本中识别它的结果并从最后一个脚本中取消它,其中我显示我如何得到我的参数。

enter image description here

提前致谢!

2 个答案:

答案 0 :(得分:1)

首先,确保你在下面的函数中获得了id。

editarProcesso(id){
    this.navCtrl.push(HomePage, {id : id});
}

然后尝试使用主页中的以下方法获取该ID。

let id = this.navParams.get('id');

答案 1 :(得分:-1)

在home.ts中声明 id 并调用 this.id

export class HomePage {
id: any = '0';

constructor(
public navCtrl: NavController,
public navParams: NavParams,
  private platform: Platform,
  private sqlite: SQLite,
  private dbProvider: DatabaseProvider,
  private processoProvider : ProcessosProvider,
  private toast: Toast,
  private toastController: ToastController)

并添加:

this.id = navParams.get('id');
相关问题