У меня есть побочный проект в 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>
Может быть, ошибка в обещании или что-то в этом роде, но не уверен, я новичок в ионной.
Вы должны вызывать вторую страницу внутри. .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
});
});
}