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?
 
     
     
    