Sto pianificando di aggiungere un componente dinamico al DOM se viene chiamato show(). So che esiste una soluzione con ngIf o [hidden] per nasconderlo e usarlo come direttiva, ma non sono un fan di questa soluzione perché non voglio dichiararla nel mio HTML.Angular 2 append Component dynamic to DOM o template
import {Component} from 'angular2/core';
import {InfoData} from '../../model/InfoData';
@Component({
selector: 'Info',
templateUrl: './components/pipes&parts/info.html',
styleUrls: ['./components/pipes&parts/info.css']
})
export class Info{
infoData: InfoData;
public show(infoData: InfoData) {
this.infoData= infoData;
document.body.appendChild(elemDiv); <----- Here?
}
}
e quindi lo dichiaro come provider in modo da poter chiamare show().
import {Component} from 'angular2/core';
import {Info} from './components/pipes&parts/Info';
@Component({
selector: 'Admin',
templateUrl: './Admin.html',
styleUrls: ['./Admin.css'],
directives: [Info],
providers: [Info]
})
export class Admin {
constructor(private info: Info) {
info.show(); <---- append the Info Element to DOM
}
'DynamicComponentLoader' è ora deprecato :( –
@ NoémiSalaün sì ma questa risposta di Günter potrebbe interessarti: http: // stackoverflow.it/questions/36325212/angular-2-dynamic-tabs-with-user-click-scelti-components/36325468 # 36325468 ;-) –