我想创建一个组件 myApp
,它将在控件的模板中嵌入HTML . 但是,某些HTML可能包含其他组件选择器 .
import {InfoComponent} from ...
@Component({
selector: 'myApp',
template: `<div [innerHTML]='hData'></div>
<myInfo></myInfo>`,
directives: [InfoComponent]
})
export class AppComponent {
hData = "<myInfo></myInfo>";
}
@Component({
selector: 'myInfo',
template: "<b>This is a test</b>"
})
export class InfoComponent {
}
在这个例子中,我希望看到 This is a test
显示两次 . 但是,似乎Angular2引擎没有注意到Component的选择器已被注入,因此模板永远不会为通过绑定添加的 <myInfo></myInfo>
选择器生成 .
你可以看到demo here .
有没有办法让Angular2解析选择器的方式与在模板中显式添加的选择器相同?
1 回答
无法使
[innerHtml]="..."
实例化Angular组件或指令或 Build 任何绑定 .最接近此要求的是DynamicComponentLoader . (之前删除了DynamicComponentLoader)
ViewContainerRef.createComponent()
有关示例,请参见Angular 2 dynamic tabs with user-click chosen components
由于RC.5 Angular2清理了通过绑定添加的样式和HTML . 有关详细信息,请参阅In RC.1 some styles can't be added using binding syntax .