通过示例生成来自http://valor-software.com/ng2-bootstrap/的ng2-bootstrap的标签视图,我有以下代码:
<tabset>
<tab *ngFor="#tabz of tabs"
[heading]="tabz.title"
[active]="tabz.active"
(select)="tabz.active = true"
(deselect)="tabz.active = false"
[disabled]="tabz.disabled"
[removable]="tabz.removable"
(removed)="removeTabHandler(tabz)">
{{tabz?.content}}
</tab>
但是我希望从{{tabz?.content}}属性中提取HTML代码。有没有办法做到这一点?我的tabs数组看起来像这样:
public tabs:Array<any> = [
{title: 'Summary View', content: 'Dynamic content 1', active: true},
{title: 'Search View', content: '<someAngularComponent>Error Displaying Entry view</someAngularComponent >'}];
答案 0 :(得分:2)
<tabset>
<tab *ngFor="#tabz of tabs"
[heading]="tabz.title"
[active]="tabz.active"
(select)="tabz.active = true"
(deselect)="tabz.active = false"
[disabled]="tabz.disabled"
[removable]="tabz.removable"
(removed)="removeTabHandler(tabz)"
[innerHTML]="tabz?.content">
</tab>
您应该知道Angular不会对HTML进行清理,也不会以任何其他方式处理它。 Angular通过这种方式添加了像[]
,()
,{{}}
,<my-comp>
,<div myDirective>
这样的绑定。
答案 1 :(得分:1)
普通html注入:
<tab [innerHTML]="tabz?.content">
Angular2模板/组件不能以与上面相同的方式注入,您可以将内容包装到组件中并使用DynamicComponentLoader
事件触发的(select)
加载它。