【问题标题】:HTML code form Angular2 component propertyHTML代码表单Angular2组件属性
【发布时间】:2016-08-06 18:21:21
【问题描述】:

通过示例从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 代码。有没有办法做到这一点?我的标签数组如下所示:

public tabs:Array<any> = [
{title: 'Summary View', content: 'Dynamic content 1', active: true},
{title: 'Search View', content: '<someAngularComponent>Error Displaying Entry view</someAngularComponent >'}];

【问题讨论】:

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


    【解决方案1】:
    <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,也不会以任何其他方式处理它。通过这种方式添加的 HTML,Angular 会忽略 [](){{}}&lt;my-comp&gt;&lt;div myDirective&gt; 等绑定。

    【讨论】:

    • 非常感谢。我是前端开发的新手。有什么方法/建议可以清理 HTML 吗?
    • 你也说过 ,
      被Angular忽略了。你的意思是即使这些是 [innerHTML] 内容的一部分?如果是这样,我将如何在 innerHTML 中加载 Angular 组件?
    • Angular 的动态 HTML 无能为力。当您拥有像 &lt;div #someTarget&gt;&lt;/div&gt; 这样的静态 HTML 时,您可以使用 DynamicComponentLoader 将组件添加到 #someTarget
    【解决方案2】:

    纯 html 注入:

    <tab [innerHTML]="tabz?.content">
    

    Angular2模板/组件不能像上面一样注入,你可以将内容包装到组件中,然后使用(select)事件触发的DynamicComponentLoader加载它。

    【讨论】:

    • 对此有点陌生...您能否提供在(选择)事件上使用 DynamicComponentLoader 的参考/示例?
    • 官方文档里有很好的example
    • html 注入对我有用。顺便说一句,不是我想要的,但前面示例中的链接已失效。似乎在 angular 的最终版本中,DynamicComponentLoader 不再可用。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签