Cómo hacer que Angular2 vincule el componente en innerHTML

Quiero crear un componente myApp que incruste HTML de una propiedad en el controlador en su plantilla. Sin embargo, parte de ese HTML puede incluir otros selectores de componentes.

 import {InfoComponent} from ... @Component({ selector: 'myApp', template: `
`, directives: [InfoComponent] }) export class AppComponent { hData = ""; } @Component({ selector: 'myInfo', template: "This is a test" }) export class InfoComponent { }

En este ejemplo, esperaría ver This is a test muestra dos veces. Sin embargo, no parece que el motor Angular2 detecte el hecho de que el selector del Componente se ha inyectado para que la plantilla nunca se genere para el que se agrega a través del enlace.

Puedes ver una demostración aquí .

¿Hay alguna manera de hacer que Angular2 analice el selector de la misma manera que lo hace con el selector que se agrega explícitamente en la plantilla?

No hay forma de que [innerHtml]="..." instancias de componentes angulares o directivas o establezca enlaces.

El más cercano para este requisito es DynamicComponentLoader . (DynamicComponentLoader se eliminó hace un tiempo) ViewContainerRef.createComponent()

Consulte las tabs dinámicas de Angular 2 con componentes elegidos por el usuario para un ejemplo

Dado que RC.5 Angular2 desinfecta los estilos y el HTML agregado a través del enlace. Consulte En RC.1 algunos estilos no se pueden agregar usando la syntax de enlace para más detalles.