html - 如何从角度组件显示包含内联样式标签的字符串 HTML
问题描述
我想从一个角度组件显示一个包含内联样式标记的已保存 HTML,我尝试过封装:ViewEncapsulation.None,但它不起作用。
零件:
@Component({
selector: 'app-page-content',
templateUrl: './page-content.component.html',
styleUrls: ['./page-content.component.css'],
encapsulation: ViewEncapsulation.None,
})
在 ts 组件中从 HTTP 获取数据:
description=<p class="ql-direction-rtl ql-align-right" style="text-align: center;"><strong><span style="color: #236fa1;">test</span></strong></p>
显示数据:
<div [innerHtml]=description></div>
解决方案
由于安全问题,Angular 不允许您直接将样式传递给变量。所以你必须明确告诉它你的字符串是安全的。
你这样做如下:
import {DomSanitizer} from '@angular/platform-browser'
……
export class AppComponent {
description;
constructor(private sanitizer: DomSanitizer) {
this.description = sanitizer.bypassSecurityTrustHtml(`<p class="ql-direction-rtl ql-align-right" style="text-align: center;"><strong><span style="color: #236fa1;">test</span></strong></p>`)
}
}
推荐阅读
- r - R函数替换给定范围内的值
- html - 如何使用行对齐来装饰 Bootstrap 网格布局的边距
- amazon-web-services - 如何防止 AWS Lambda 自动从 SQS 队列中删除消息,而是以编程方式将其删除?
- python - 如何在 django-filter 字段中使用小部件?
- java - Minecraft 1.8 函数名称在 1.8.8 中?
- java - Java - 方法调用“添加”将产生“NullPointerException”
- swift - 页面上未执行 beforeEncode 和 afterDecode
- ffmpeg - 使用ffmpeg进行屏幕录制时添加水印的命令行是什么?
- c# - OneDrive API 与 Unity 3D 的集成
- sql - 从 Postgres jsonb 数组中提取最早日期