Ng2 innerHTML 如何允许样式属性? [复制]

Posted

技术标签:

【中文标题】Ng2 innerHTML 如何允许样式属性? [复制]【英文标题】:Ng2 innerHTML How to allow style attribute? [duplicate] 【发布时间】:2017-07-09 14:54:05 【问题描述】:

我正在尝试使用 [innerhtml] 在 Angular 2 中呈现 HTML。然而 angular 2 从 html 元素中删除了 style 属性。如何获取呈现的样式?

component.ts

...
content = "<table><tr><td style="width:30%">Hallo</td><td style="width:70%">Welt</td></tr></table>"
---

component.html

<div [innerHTML]="content"></div>

【问题讨论】:

只有样式属性下的样式适用于组件。 【参考方案1】:

您可以通过 /deep/ ::ng-deep

与他们联系
@Component(
  styles: [`
    // :host /deep/ td  // old
    :host ::ng-deep td 
      width: 30%;
    `
)

您也可以禁用组件的样式封装

@Component(
  ...,
  viewEncapsulation: ViewEncapsulation.None
)

但这可能会带来其他缺点,因为样式渗入甚至没有/deep/ 渗出的样式。

【讨论】:

这在没有定义宽度的情况下是否通用? “不定义宽度”是什么意思?这是普通的 CSS,它只是添加了 /deep/ 以跨越组件边界,例如直接子代的 &gt;。动态添加的 HTML 与来自子组件的 HTML 类似。

以上是关于Ng2 innerHTML 如何允许样式属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Angular 2+ [innerHTML] 添加包含样式属性的 html

如何在 ng2-tag-input 中使用自定义样式组件作为标签背景颜色?

Angular2 innerHtml绑定删除样式属性[重复]

如何css样式angular2的Ng2-completer插件输入框和下拉颜色?

如何使用innerHTML在angular 2中附加HTML内容

如何重设和允许使用ng2-file-upload上传文件