Ionic - InnerHTML 替代方案

4 innerhtml ionic-framework angular

我有一个变量,它从我的数据库中获取字符串并将其显示在我的一个面板上。获取的文本包含典型的 HTML 标签,例如<b><u><p>等。

<div [innerHTML]="myVariableWithTags"></div>
Run Code Online (Sandbox Code Playgroud)

这在测试时可以工作ionic lab,但不能在模拟器或真实设备上运行。

所以我的问题是 Ionic 的 innerHTML 的替代品是什么?

例如我的变量myVariableWithTags如下:

<b>This has to be bold</b> <i>and this italic</i>
Run Code Online (Sandbox Code Playgroud)

我想做以下事情:

<div> {{myVariableWithTags}} </div>
Run Code Online (Sandbox Code Playgroud)

并希望看到面板如下所示: 这必须是粗体 ,斜体

代替<b>This has to be bold</b> <i>and this italic</i>

这可能吗?

Imo*_*mon 5

第 1 步:创建管道

import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer} from '@angular/platform-browser';

@Pipe({ name: 'safe' })
export class SafePipe implements PipeTransform {
  constructor(private sanitizer: DomSanitizer) {}
  transform(html) {
    return this.sanitizer.bypassSecurityTrustHtml(html);
  }
}
Run Code Online (Sandbox Code Playgroud)

第 2 步:声明并导出app.module.ts

import { SafePipe } from '........';
@NgModule({
    declarations: [
    SafePipe
    ],
    imports: [

    ],
    exports: [
        SafePipe
    ],
    providers: [
    ]
})
Run Code Online (Sandbox Code Playgroud)

步骤 3safe :在 html 文件上使用管道

<div [innerHTML]="myVariableWithTags | safe"></div>
Run Code Online (Sandbox Code Playgroud)


小智 5

IONIC-4 版本支持 InnerHTML

<ion-content padding>
    <div [innerHTML]="data"></div>
</ion-content>  
Run Code Online (Sandbox Code Playgroud)

**不要在"<p>"标签内部使用。