假设我有一个以下形式的数据对象列表:
my_list = [
{name:Alice, age:23},
{name:Bill, age:33},
{name:Clara, age:43}
];
我使用 ngFor
基于数组创建一组自定义组件:
<person-widget *ngFor="#item of my_list"></person-widget>
我想让每个创建的PersonWidget
实例访问生成它的列表项的属性,方法是将item
参数作为ngFor
的一部分传递到实例中,或者以某种方式授予实例对原始数据的访问权限。
基本上,在每个PersonWidget
类中,我希望能够使用my_data_object.name
并获得 Alice
或 Bob
或 Clara
的值。
关于如何做到这一点的任何建议,或者是否有更好、更"Angular2"的方法?
谢谢大家:)
您可以使用person-widget
组件的参数:
<person-widget *ngFor="#item of my_list" [item]="item"></person-widget>
person-widget
组件必须已定义此参数,如下所述:
@Component({
selector: 'person-widget',
template: `
<div>{{item.name}}</div>
`
})
export class PersonWidgetComponent {
@Input()
item: any;
ngOnInit() {
console.log(this.item.name);
}
}