html - 如何使用 innerHtml 为注入(inject)到 Angular 组件中的 html 应用样式?

标签 html css angular sass css-selectors

我正在尝试在 Angular 组件中插入一些 html 内容 组件使用服务调用获取 HTML 并设置绑定(bind)到 div 的 innerHtml 的属性。

这个html插件有一堆样式需要设置,如下面的scss内容。

但我不确定该怎么做....尝试了 ngStyle 和 ngClass 来返回样式并在 div 中使用,但是没有用。 谁能告诉我如何为 innerHtml 应用样式? - 谢谢

  <div class [innerHTML]="html"></div>

  private fetchEmail() {
    const d = this._intl.formatDate(this.today, 'yyyy-MM-dd');
    this._vmService.getVariatioMarginEmail(d).subscribe(e => {
      if (!isUndefined(e) || e.length > 0) {
        this.html = e.html;
      }
    });
  }


.table {
    border-collapse: collapse;
    border: 1px solid #999;
    font: normal 11px verdana, arial, helvetica, sans-serif;
    color: #F6ECF0;
    background: transparent;
  }

  th {
    border: 1px solid #999;
    text-align: left;
    vertical-align: middle;
    font-weight: 700;
    background: #333a56;
    color: #fff;
    padding: 5px 10px;
  }

  td {
    border-collapse: collapse;
    border: 1px solid #999;
    padding: 5px 10px;
    color: #555;
  }

  tbody td a {
    background: transparent;
    text-decoration: none;
    color: #F6ECF0;
  }

  a {
    font: normal 11px verdana, arial, helvetica, sans-serif;
  }

最佳答案

我必须使用类和 ngdeep

<div class ='emailClas" [innerHTML]="html"></div>

    .emailClass ::ng-deep table {
    border-collapse: collapse;
    border: 1px solid #999;
    font: normal 11px verdana, arial, helvetica, sans-serif;
    color: #F6ECF0;
    background: transparent;
  }

  .emailClass ::ng-deep  th {
    border: 1px solid #999;
    text-align: left;
    vertical-align: middle;
    font-weight: 700;
    background: #333a56;
    color: #fff;
    padding: 5px 10px;
  }

  .emailClass ::ng-deep td {
    border-collapse: collapse;
    border: 1px solid #999;
    padding: 5px 10px;
    color: #555;
  }

  .emailClass ::ng-deep  tbody td a {
    background: transparent;
    text-decoration: none;
    color: #F6ECF0;
  }

  .emailClass ::ng-deep  a {
    font: normal 11px verdana, arial, helvetica, sans-serif;
  }

关于html - 如何使用 innerHtml 为注入(inject)到 Angular 组件中的 html 应用样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616487/

相关文章:

php - 即使有更多数据要遍历数组元素也会中断循环

html - 如何将 primefaces DefaultMenuModel 推到 Accordion 面板之前?

css - 删除由使用边框半径引起的空白

javascript - Angular 2项目文件结构

javascript - CORS 奇怪的行为

angular - TypeError : webpack. CopyWebpackPlugin 不是构造函数

java - 使用JSP代码动态更改DIV标签内容

jquery - CSS-Jquery : Nested <ul> with different CSS possible?

html - 将 flexboxes 缩小到与最短盒子相同的高度

css - Bootstrap当前事件的dom元素颜色开关?