import { Pipe, PipeTransform } from '@angular/core'; import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeResourceUrl, SafeUrl } from '@angular/platform-browser'; @Pipe({ name: 'filterSafe', }) export class FilterSafePipe implements PipeTransform { constructor(private _sanitizer: DomSanitizer) { } public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeResourceUrl | SafeUrl { switch (type) { // 这条语句就是我们今天主要用到的 case 'html': return this._sanitizer.bypassSecurityTrustHtml(value); // 接下来的这些是DomSanitizer提供的其他一些安全的转换 case 'style': return this._sanitizer.bypassSecurityTrustStyle(value); case 'script': return this._sanitizer.bypassSecurityTrustScript(value); case 'url': return this._sanitizer.bypassSecurityTrustUrl(value); case 'resourceUrl': return this._sanitizer.bypassSecurityTrustResourceUrl(value); default: throw new Error(`Invalid safe type specified: ${type}`); } } }