Я не понимаю, почему мой объект всегда "undefinned" на ngoninit на angular. Я запрашиваю свой api-проект, я получаю свой ответ правильно. Когда я console.log
, мой объект не определен (ngoninit), но в другой функции я могу получать значения.
Мои вопросы: почему и как я могу получить свой объект в ngoninit.
Спасибо
Я правильно получаю свой ответ на почтальоне, другие функции тоже извлекают
Услуга:
getById(id:string):Observable<Grower>{
return this.http.get<Grower>(`${environment.apiUrl}/growers/${id}`);
}
Посмотреть модель:
export class GrowerDetails {
adress:string;
zip:string;
city:string;
}
Составная часть:
growerService:GrowerService;
detailsProfil: GrowerDetails;
constructor(private authenticationService: AuthenticationService, growerService:GrowerService,
private formBuilder:FormBuilder) {
this.growerService = growerService;
}
ngOnInit() {
this.detailsProfil = new GrowerDetails();
this.growerService.getById(this.decoded.nameid).subscribe(
(data:Grower) => this.detailsProfil = {
adress: data.adress,
city: data.city,
zip : data.zip
},
error => console.log(error)
);
console.log(this.detailsProfil); // undefinned
onSubmit(){
console.log(this.detailsProfil); // ok
}
Почтальон:
{
"lat": 0,
"long": 0,
"description": "test",
"adress": "test",
"zip": "test",
"city": "test"
}
console.log
, вы увидите, что исходный оператор вызывается перед обратным вызовом подписки. См. Дублирующийся вопрос / ответ для получения более подробной информации. - person ConnorsFan   schedule 11.01.2019