I would like to implement a component acting like a container with dynamically added children components. The type and number of children components should be configured on server side.
So Models arrived from
the server could look like this:
export class ModelBase {
public data: any;
}
export class ModelA extends ModelBase {
public dataA: any;
}
export class ModelB extends ModelBase {
public dataB: any
}
Simplified components could be like this:
@Component({
selector: "component-base"
})
export class BaseComponent {
@Input() model: ModelBase;
}
@Component({
selector: "component-a",
template: "<div>component-a</div>"
})
export class AComponent extends BaseComponent {
@Input() model: ModelBase;
}
@Component({
selector: "component-b",
template: "<div>component-b</div>"
})
export class BComponent extends BaseComponent {
@Input() model: ModelBase;
}
And here is the Application and how I would like to work with my components:
@Component({
selector: 'app',
template: `
<div *ngFor="#model of models">
<component-base [model]="model"></component-base>
</div>
`
})
export class App {
}
I want component-base
will be replaced with the concrete implementation based on model
type. For example, with component-a.
Does workflow like this is possible to implement with Angular 2?