尽管它在 Angular 6 中运行,但这可能不是“最干净”的方法。
首先我创建了一个名为 dummy.ts 的组件,[你可以给它起任何你想要的名字...]
使用以下 ng 命令
ng generate component dummy
在 dummy.ts 组件内容中添加任何内容之前,我首先需要定义一个管道文件。为方便起见,我使用以下 ng 命令在同一 dummy.ts 组件文件夹中生成了管道:
ng generate pipe SafeHtml
然后我添加了以下代码:
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({
name: 'safeHtml'
})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitized: DomSanitizer) {}
transform(value) {
return this.sanitized.bypassSecurityTrustHtml(value);
}}
终于回到dummy.ts我添加了这个非常简单的基本代码。
import { Component, OnInit } from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { DomSanitizer } from '@angular/platform-browser';
import { SafeHtmlPipe } from './safe-html.pipe';
@Component({
selector: 'app-dummy',
templateUrl: './dummy.component.html',
styleUrls: ['./dummy.component.css']
})
export class DummyComponent implements OnInit {
name:string;
safeHtmlContent : string;
dummyContent : string;
onClick(){
this.safeHtmlContent = this.dummyContent;
}
constructor() {
this.dummyContent = '<h4>Some dummy title</h4><p>Some blah blah blah blah blah... dummy content</p>';
}}
在 dummy.html 中我只是添加了以下内容:
<div>
<button (click)="onClick()">Click</button>
</div>
<div [innerHtml]="safeHtmlContent"></div>
因此,当单击按钮时,它会显示预期的原始 HTML
希望这会有所帮助;)