我有一个测试组件,它通过@Input()
接收对象array.我想根据一些内部逻辑/额外按钮修改数据,但也允许调用者决定数据应该如何显示.
该组件的示例,使用小写.toUpperCase()
将用户名设置为大写:
@Component({
selector: 'test-component',
template: `
<h1>My Test</h1>
<ng-content></ng-content>
`
})
export class TestComponent implements OnInit {
@Input() data?: Array<{ name: string }>;
ngOnInit(): void {
this.data.map((item: any) => {
item.name = item.name.toUpperCase();
return item;
});
}
现在,有没有什么方法可以在投影内容中访问提供给组件的data
?大概是这样的:
<test-component [data]="[{name: 'joe'}, {name: 'mike'}]">
<p *ngFor="let person of data">{{ person.name }}</p>
</test-component>
例如,这对于构建一个组件非常有帮助,我可以在其中投影表并使用*ngFor
来呈现行.组件本身将添加分页按钮,并相应地过滤*ngFor
使用的数据.