Как мне получить значение nav-параметра? - PullRequest
0 голосов
/ 11 июня 2018

Ну, я создаю БД в SQLite, используя ионную среду.Мой вопрос, как я могу получить параметр nav?

Вот моя главная страница:

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>

Вот тс

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


  }

Вот меню журнала консоли, когда я щелкаю по элементу ion с данными в нем, результат id - это сценарий под HTML, а null - последний скрипт, где я показываю, как получить свой параметр.

enter image description here

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Прежде всего, убедитесь, что вы получаете идентификатор в своей функции ниже.

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

, а затем попробуйте получить этот идентификатор, используя метод ниже на вашей домашней странице.

let id = this.navParams.get('id');
0 голосов
/ 11 июня 2018

в 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...