HTML代码形成Angular2组件属性

时间:2016-04-14 23:45:36

标签: javascript html twitter-bootstrap angular ng2-bootstrap

通过示例生成来自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 >'}];

2 个答案:

答案 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)加载它。

相关问题