我有一个变量,可从数据库中获取一个字符串并将其显示在我的一个面板上。提取的文本包含典型的HTML标签,例如<b><u><p>
等。
<div [innerHTML]="myVariableWithTags"></div>
这在使用ionic lab
进行测试时可以使用,但不能在模拟器或真实设备上运行。
所以我的问题是,对于Ionic,innerHTML的替代方案是什么?
例如,我的变量myVariableWithTags
如下:
<b>This has to be bold</b> <i>and this italic</i>
我要执行以下操作:
<div> {{myVariableWithTags}} </div>
,并希望看到如下所示的面板: 必须为粗体 和此斜体
代替<b>This has to be bold</b> <i>and this italic</i>
这可能吗?
答案 0 :(得分:0)
第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);
}
}
第2步:声明并导出到app.module.ts
import { SafePipe } from '........';
@NgModule({
declarations: [
SafePipe
],
imports: [
],
exports: [
SafePipe
],
providers: [
]
})
第3步:
在HTML文件上使用safe
管道
<div [innerHTML]="myVariableWithTags | safe"></div>
答案 1 :(得分:0)
将myVariableWithTags
包裹在<span>
中。这对我有用。
答案 2 :(得分:0)
IONIC-4版本支持的InnerHTML
<ion-content padding>
<div [innerHTML]="data"></div>
</ion-content>
**请勿在{{1}}标记内使用。