Nell'angolo 2, è possibile creare manualmente un'istanza di un componente A, quindi passarlo e renderlo nel modello del componente B?È possibile istanziare manualmente il componente in angolare 2
risposta
Sì, è supportato. È necessario un ViewComponentRef
che può essere acquisito ad esempio immettendolo nel costruttore o utilizzando una query @ViewChild('targetname')
e un ComponentResolver
che può anche essere iniettato.
Questo esempio di codice da https://stackoverflow.com/a/36325468/217408 permette ad esempio di aggiungere componenti in modo dinamico con *ngFor
@Component({
selector: 'dcl-wrapper',
template: `<div #target></div>`
})
export class DclWrapper {
@ViewChild('target', {read: ViewContainerRef}) target;
@Input() type;
cmpRef:ComponentRef;
private isViewInitialized:boolean = false;
constructor(private resolver: ComponentResolver) {}
updateComponent() {
if(!this.isViewInitialized) {
return;
}
if(this.cmpRef) {
this.cmpRef.destroy();
}
this.resolver.resolveComponent(this.type).then((factory:ComponentFactory<any>) => {
this.cmpRef = this.target.createComponent(factory)
});
}
ngOnChanges() {
this.updateComponent();
}
ngAfterViewInit() {
this.isViewInitialized = true;
this.updateComponent();
}
ngOnDestroy() {
if(this.cmpRef) {
this.cmpRef.destroy();
}
}
}
questo esempio non consente di creare un'istanza di un componente con i dati. – dopatraman
Non sai cosa intendi. L'esempio più completo nella risposta collegata mostra come passare i dati in entrata e in uscita. –
- 1. Angolare 2, componente interno al componente principale
- 2. reindirizzamento all'interno componente angolare 2
- 3. Angolare 2 Componente non visualizzato
- 4. Componente angolare 2 con più viste
- 5. Componente multi root bootstrap angolare 2
- 6. Componente figlio 2 angolare si riferisce al componente principale
- 7. Angolare 2 Comunicazione componente fratello singolo
- 8. sostituire il componente con il suo contenuto - angolare 2
- 9. Componente angolare 2 @Input non funzionante
- 10. proprietà componente figlio 2 angolare accesso dal componente principale
- 11. Angolare 2 variabili componente variabili su un altro componente
- 12. Angolare 2. Passare il parametro a un componente
- 13. Router Angolare 2 Rc.1 non caricando il componente "/"
- 14. Angular 2 - È possibile associare il componente dell'app al DOM esistente senza cancellare il contenuto HTML?
- 15. angolare 2 setInterval() continuo in esecuzione su un altro componente
- 16. Imposta dinamicamente l'attributo sul componente in template html angolare 2
- 17. Angolare 2 "slide in animation" di un componente instradato
- 18. Stile dinamicoUrl in angolare 2?
- 19. È possibile aggiornare ModelState.IsValid manualmente?
- 20. Accesso al modulo angolare 2 guidato da ngForm nel componente
- 21. Come potrei usare uno system.import() nel componente angolare 2
- 22. È possibile istanziare una classe astratta?
- 23. angolare 2 accesso contenuto ng all'interno del componente
- 24. Angolare 2 + Interfaccia utente semantica, interruzione incapsulamento componente stile
- 25. È possibile istanziare un oggetto phone.Phone tramite il sdk?
- 26. angolare 2 Quickstart - componente my-app non caricare
- 27. Angolare 2 Più di un componente sulla stessa pagina
- 28. Angolare 2: fare qualcosa con @Input all'interno del componente
- 29. angolare 2 - Come impostare l'attributo id alla componente caricato dinamicamente
- 30. angolare 2 che eredita da una base-componente
Benvenuti quindi per favore controllare questo [URL] (http://stackoverflow.com/help) sarà aiutandovi a sollevare la tua domanda qualità dei contenuti –