Как исправить следующую ошибку на моем представлении:
ERROR in src/app/sermon/sermon.component.html(14,46): : Property 'sessionEnum' does not exist on type 'string[]'.
Код для представления:
<div class="product-details text">
<ul class="info-list">
<li><span>Session : </span> {{ sermon?.sermonSession?.sessionEnum }}</li>
<li><span>Recorded : </span> {{ sermon.date }}</li>
</ul>
</div>
Я так понимаю, мне нужно создать это свойство в sermonSession:
export namespace SermonModule {
export interface Serializable<T> {
deserialize(input: Object): T;
}
export class Sermon implements Serializable<Sermon> {
id: string;
name: string;
fileName: string;
speaker: string;
description: string;
tags: string[];
date: string;
sermonSession: string[];
deserialize(input) {
this.id = input.id;
this.name = input.name;
this.fileName = input.fileName;
this.speaker = input.speaker;
this.description = input.description;
this.tags = input.tags;
this.date = input.date;
this.sermonSession = input.sermonSession;
return this;
}
}
}
Вопрос в том ... как мне создать собственность на собственности?
Мой код для компонента находится здесь.
2 ответа
Если вы хотите использовать его так: sermon? .SermonSession? .SessionEnum, вы должны сделать его объектом, а не массивом.
let sermonSession = { sessionEnum: 'some string'};
Но если вы передадите массив объектов, вы можете сделать это так:
sermon.sermonSession[0].sessionEnum
Все зависит от вашей реализации.
Как будет выглядеть объектная модель:
export namespace SermonModule {
export interface Serializable<T> {
deserialize(input: Object): T;
}
export class Sermon implements Serializable<Sermon> {
id: string;
name: string;
fileName: string;
speaker: string;
description: string;
tags: string[];
date: string;
sermonSession: object;
deserialize(input) {
this.id = input.id;
this.name = input.name;
this.fileName = input.fileName;
this.speaker = input.speaker;
this.description = input.description;
this.tags = input.tags;
this.date = input.date;
this.sermonSession = input.sermonSession;
return this;
}
}
}
Вам нужно создать объект вроде
this.sermon={
...
sermonSession: {
...,
sessionEnum:"value"
}
}
Проверьте вложение вашего объекта, похож ли он на этот формат или нет.
Похожие вопросы
Новые вопросы
angular
Вопросы по Angular (не путать с AngularJS), веб-фреймворку от Google. Используйте этот тег для угловых вопросов, которые не относятся к конкретной версии. Для более старой веб-платформы AngularJS (1.x) используйте тег angularjs.