Я хочу отображать данные JSON в виде отдельных элементов списка элементов через Pipe в моем приложении Angular2, но мой код не работает.Render JSON items как элемент списка через трубку в Angular2
Мои данные JSON (я загрузить его через HTTP):
[
{
"name": "Release One",
"songs": [
"Song 1",
"Song 2",
"Song 3"
],
"year": "2008"
},
{
"name": "Release Two",
"songs": [
"Song 1",
"Song 2",
"Song 3",
"Song 4",
"Song 5"
],
"year": "2010"
},
{
"name": "Release Three",
"songs": [
"Song 1",
"Song 2",
"Song 3",
"Song 4"
],
"year": "2011"
},
{
"name": "Release Four",
"songs": [
"Song 1",
"Song 2",
"Song 3",
"Song 4",
"Song 5"
],
"year": "2011"
}
]
Мой @Pipe в соответствии с решением, предлагаемым here:
@Pipe({name: 'KeysPipe'})
export class KeysPipe implements PipeTransform {
transform(value, args:string[]) : any {
if (!value) {
return value;
}
let keys = [];
for (let key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}
}
Мой @Component:
@Component({
selector: 'my-app',
template: `
<div class="releases-component">
Releases Component starts here!
<div *ngFor="let release of releases">
<h3>Name: {{release.name}}</h3>
<h3>Name: {{release.year}}</h3>
</div>
</div>
<ul>
<li *ngFor="let release.song of releases | keys">
{{release.song}}
</li>
</ul>
`,
})
Пожалуйста, помогите понять, что я делаю неправильно.
Я не понимаю последней итерации ... что вы пытаетесь достичь с 'let release.item выпусков'. В вашем json нет 'release.item'? Что вы хотите там сделать? Не могли бы вы привести пример желаемого результата в вашем вопросе, спасибо. – Alex