Como posso renderizar um componente que implementa uma interface?
Digamos que eu tenho uma interface (ou um componente real)ListItemRenderer
e um componenteMyRendererComponent
que implementa essa interface (ou estende o componente base)
@Component({
selector: 'my-renderer',
template: '<div>My renderer</div>'
})
export class MyRendererComponent implements ListItemRenderer {
...
}
Gostaria de passar essa implementação concreta para outro componente, por exemplo,
@Component({
selector: 'my-list',
template: `
<ul [renderer]="renderer" [items]="items">
<li *ngFor="let item of items">
<!-- what goes here? -->
</li>
</ul>
`
})
export class MyList {
@Input() renderer: ListItemRenderer;
@Input() items: any[];
...
}
Obviamente, o componente pai teria uma propriedade públicarenderer
do tipoListItemRenderer
. A questão é: como faço para usar esse componente no meu<li>
(Vejo "o que vai aqui?" acima)?