innerHTML 不尊重 Angular 中的样式
在 Angular 中,使用 innerHTML 来显示 HTML 可能会带来样式问题,特别是在尝试应用 CSS 时HTML 代码中的样式。出现此行为的原因是 Angular 的默认封装模式(模拟)可防止外部样式干扰组件的内部样式。
解决方案:
要解决此问题并在内部启用样式innerHTML,需要将封装模式切换为None。这允许 Angular 应用来自内部和外部源的样式:
示例:
<code class="typescript">import { Component, ViewEncapsulation } from '@angular/core'; @Component({ selector: 'example', styles: ['.demo {background-color: blue}'], template: '<div [innerHTML]="someHtmlCode"></div>', encapsulation: ViewEncapsulation.None, }) export class Example { private someHtmlCode = ''; constructor() { this.someHtmlCode = '<div class="demo"><b>This is my HTML.</b></div>'; } }</code>
通过这种方法,您现在可以将 CSS 样式应用到通过innerHTML 渲染的 HTML在你的 Angular 应用程序中。
以上是为什么我的 innerHTML 不尊重 Angular 中的样式,我该如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!