У меня проблема с моей системой.
В основном, у меня есть сущность:
import { Produto } from "./produto.model";
import { Empresa } from "./empresa.model";
import { Mensagem } from "./mensagem.model";
export class Nfe{
public codNfe: number;
public numeroNfe: number;
public dataEmissao: Date;
public valorTotal: number;
public empresa: Empresa;
public produtos: Array<Produto>;
public mensagens: Mensagem;
constructor(){};
}
И услуга:
constructor(private http: Http) { }
public getNFE(numero: string): Promise<Nfe>{
return this.http.get(`${URL_API}nfe?numeroNfe=${numero}`)
.toPromise()
.then((response: any) => {
return response.json()
});
}
И вид:
export class ExibirNfeComponent implements OnInit {
public nfe: Nfe;
constructor(private service: NfeService) {
}
ngOnInit() {
this.service.getNFE('26180406057223028939650050000133071050336085')
.then((nfe: Nfe) => {
this.nfe = nfe;
})
}
}
<div class="row">
<div class="col-sm-2">Id: {{nfe.codNfe}}</div>
</div>
Когда я вызываю мой экран, я получаю эту ошибку:
ОШИБКА TypeError: Невозможно прочитать свойство 'codNfe' из неопределенного
Я предполагаю, что это происходит, потому что службе требуется некоторое время, чтобы ответить. Мне нужен способ, чтобы представление ожидало, пока мой объект не заполнится.
Как я могу это сделать?
Обновление 1
Я поставил несколько консольных логов:
ngOnInit() {
console.log('Begin OnInit')
console.log(this.nfe)
this.service.getNFE('26180406057223028939650050000133071050336085')
.then((nfe: Nfe) => {
this.nfe = nfe;
console.log(this.nfe)
});
console.log('End OnInit');
}
посмотрите результаты:
введите описание изображения здесь