Я работаю с приложением Angular 7, которое создаю, и у меня возникли проблемы с возвратом данных из моего API и правильной записью их на странице.
Я пытался следовать инструкциямобещания и наблюдаемые, но я, похоже, не смог ни заставить данные правильно отображаться в заголовке, ни в этом случае заставить консоль перестать выдавать ошибки.Я попытался использовать оператор Elvis , но это просто делает отображаемое значение пустым вместо отображения значения.
resume.service.ts
export class ResumeService {
nameURL: string = 'REDACTED';
constructor(private http: HttpClient) { }
getName() {
return this.http.get(this.nameURL);
}
}
Возврат this.http.get (this.nameURL);
[
{
name: 'My Name'
}
]
navbar.component.ts
export class NavbarComponent implements OnInit {
data: Name;
reason = '';
@ViewChild('sidenav') sidenav: MatSidenav;
constructor(private http: HttpClient, private resumeAPI: ResumeService) {
this.resumeAPI.getName().subscribe(res => {
this.data = res[0];
});
}
close(reason: string) {
this.reason = reason;
this.sidenav.close();
}
}
export interface Name {
name: string
}
navbar.component.html
<div>
<a routerLink="/">
{{ this.data.name }}
</a>
</div>
Итак, в панели навигации я вижу this (оно показывает мое имя, где находится размытая область - это данныеAPI возвращает)
Но в консоли я вижу следующие ошибки (Ссылка содержит изображение ошибок консоли, но это специфика: Невозможно прочитать свойство 'имя' изundefined
Я понимаю, что выдает ошибку до того, как API предоставит данные для рендеринга, но я не уверен, как обойти это, поскольку изменил HTML на {{this.data?.name}}делает панель навигации пустой, а {{this.data.name?}} вызывает эту ошибку: Неожиданный конец выражения: {{this.data.name?}}