最近在我们的Angular 2应用中,我们通过iframe
添加了一个视频组件来引入外部嵌入式视频。此外,我们通过利用DomSanitizer
的管道清理这些资源URL。问题是我们经常,但不一致,收到以下错误,嵌入的视频无法加载:
网址细分:'null'
样本清理管道用法:
<iframe [src]="(videoObservable$ | async)?.resourceUrl | sanitizeResourceUrl"></iframe>
管道方法本身:
transform(url: string): SafeResourceUrl {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
记录url
参数的值表明最初使用参数值null调用管道,然后在值后立即再次调用。
答案 0 :(得分:5)
我发现DomSanitizer
没有很好地处理null
值,因此下面的修改通过检查null并在卫生设置之前将输入值设置为空字符串来解决问题。
transform(url: string): SafeResourceUrl {
if (!url) {
url = '';
}
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}