DomSanitizer 错误 "URL Segment: 'null'"
DomSanitizer error "URL Segment: 'null'"
最近在我们的 Angular 2 应用程序中,我们通过 iframe
添加了一个视频组件以提取外部嵌入式视频。此外,我们通过利用 DomSanitizer
的管道清理这些资源 URL。问题是我们经常但不总是收到以下错误,嵌入的视频无法加载:
URL Segment: 'null'
消毒管道使用示例:
<iframe [src]="(videoObservable$ | async)?.resourceUrl | sanitizeResourceUrl"></iframe>
管道方法本身:
transform(url: string): SafeResourceUrl {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
记录 url
参数的值表明管道最初是用参数值 null 调用的,然后紧随其后用值再次调用。
我发现 DomSanitizer
不能很好地处理 null
值,因此下面的修改通过检查 null 并将输入值设置为空字符串来解决问题。
transform(url: string): SafeResourceUrl {
if (!url) {
url = '';
}
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
最近在我们的 Angular 2 应用程序中,我们通过 iframe
添加了一个视频组件以提取外部嵌入式视频。此外,我们通过利用 DomSanitizer
的管道清理这些资源 URL。问题是我们经常但不总是收到以下错误,嵌入的视频无法加载:
URL Segment: 'null'
消毒管道使用示例:
<iframe [src]="(videoObservable$ | async)?.resourceUrl | sanitizeResourceUrl"></iframe>
管道方法本身:
transform(url: string): SafeResourceUrl {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
记录 url
参数的值表明管道最初是用参数值 null 调用的,然后紧随其后用值再次调用。
我发现 DomSanitizer
不能很好地处理 null
值,因此下面的修改通过检查 null 并将输入值设置为空字符串来解决问题。
transform(url: string): SafeResourceUrl {
if (!url) {
url = '';
}
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}