Я использую Angular 6
.
У меня есть объект массива в файле компонента.
items: Array<ItemData>;
ItemData интерфейс имеет следующий контент
export interface FavouriteProductData {
id: number;
type: string;
content: string;
}
и content содержит данные в формате json_encoded
'{"name":"Jonathan Suh","gender":"male"}';
В шаблоне я зацикливаюсь на items
и хочу напечатать name
поле содержимого.
<tr *ngFor="let i in items; id = index;">
<td> {{ i.type }} </td>
<td> {{ i.content.name }} </td>
</tr>
Но так как content
закодирован json. Я не могу напечатать его содержимое в шаблоне.
Как можно проанализировать содержимое JSON в шаблоне и сохранить проанализированное содержимое в новой переменной?
Я пытался создать метод в компоненте
jsonDecode(item) {
return JSON.parse(item.content);
}
и использовать в шаблоне как
<tr *ngFor="let i in items; id = index; p = jsonDecode(i)">
<td> {{ i.type }} </td>
<td> {{ p.name }} </td>
</tr>
Но это не работает.