I've got a whatsapp-like chat case of many types of messages that are needed to be displayed differently.
Each has its' own component such as TextMessageComponent
, FileMessageComponent
, etc..
I'd like to be able to ngFor
once on my array of messages without having to ngIf
over the types.
I've heard ngComponentOutlet
might be the solution but found it hard to implement..
Any suggestions, a mini demo or anything you find useful would be highly appreciated!
Having a property on the object should help you
<div *ngFor="let item of items" style="border: solid 1px; padding: 20px;margin: 20px;">
<span style="color:red"> {{item.name}} </span>
<ng-container *ngComponentOutlet="item.component"><ng-container>
<br>
</div>
Array object should be as
items:Array<any> = [
{
name: 'slider'
component: sliderComponent
},
{
name: 'user'
component: usersComponent
},
{
name: 'slider'
component: sliderComponent
},
{
name: 'alert danger'
component: AlertDangerComponent
}
]
Ensure that all the components are loaded by using them in the AppModule
entryComponents: [AlertDangerComponent, AlertSuccessComponent, usersComponent, sliderComponent ]
LIVE DEMO
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With