Ionic3 нужно перезагрузить, чтобы показать JSON

1

У меня есть побочный проект в Ionic 3. В этом проекте у меня есть представление с массивом пользователей, это прекрасно работает. У этих пользователей есть кнопка с идентификатором, когда мы щелкаем, мы переходим в другое представление, чтобы показать больше данных этого пользователя. Все бэкэнд Lumen и проверены с Postman, ответ правильный.

Проблема в том, что вторая страница не показывает никаких данных, но я проверяю вкладку сети и правильно получаю json. Когда я вернусь на первую страницу и перейду на вторую страницу, данные см. В представлении. ¿Почему в первый раз, когда я перехожу на вторую страницу, данные не появляются? Я думаю, что это странная ошибка.

     data2: any
     verDetalles(id:any){
        this.visitantes.verVisitante(id)
        .then(data2 => {
          this.data2 = Array(data2);
        });
        this.navCtrl.push(DatosPreVisitasPage, {
          animate: true,
          data:this.data2
        });
      }

 //CALL TO ENDPOINT

  verVisitante(id:any) {    
    return this.http.get('http://visitas.api.app:8000/visitantes/'+id)
      .map(res => res.json())
      .toPromise();
  }

И этот код в поле зрения

<ion-header >
  <ion-navbar>
    <ion-title text-center>
      Datos Prevista
    </ion-title>
  </ion-navbar>
</ion-header>
<ion-content padding class="background">
  <ion-grid >
    <ion-card padding>
      <ion-list *ngFor="let user of datos" >
        <ion-item>
          <ion-label floating>Nombre</ion-label>
          <ion-input type="text" [(ngModel)]="user.nombre" name="nombre"></ion-input>
        </ion-item>
        <ion-item>
          <ion-label floating>Apellido</ion-label>
          <ion-input type="text" [(ngModel)]="user.apellidos" name="apellido"></ion-input>
        </ion-item>
        <ion-item>
          <ion-label floating>Empresa</ion-label>
          <ion-input type="text" [(ngModel)]="user.empresa" name="empresa"></ion-input>
        </ion-item>
        <ion-item>
          <ion-label floating>DNI</ion-label>
          <ion-input type="text" [(ngModel)]="user.dni" name="dni"></ion-input>
        </ion-item>
      </ion-list>
    </ion-card>
  </ion-grid>
</ion-content>

Может быть, ошибка в обещании или что-то в этом роде, но не уверен, я новичок в ионной.

Теги:
ionic3

1 ответ

1
Лучший ответ

Вы должны вызывать вторую страницу внутри. .then так, чтобы она вызывалась только тогда, когда были получены данные:

 data2: any
 verDetalles(id:any) {
    this.visitantes.verVisitante(id)
    .then(data2 => {
      this.data2 = Array(data2);

      this.navCtrl.push(DatosPreVisitasPage, {
      animate: true,
      data:this.data2
    });
   }); 
 }
  • 0
    WTF, как я не вижу эту простую ошибку? В любом случае спасибо за помощь ^^

Ещё вопросы

Сообщество Overcoder
Наверх
Меню