DomSanitizer错误“URL Segment:'null'”

时间:2017-02-04 16:44:08

标签: angular angular-dom-sanitizer

最近在我们的Angular 2应用中,我们通过iframe添加了一个视频组件来引入外部嵌入式视频。此外,我们通过利用DomSanitizer的管道清理这些资源URL。问题是我们经常,但不一致,收到以下错误,嵌入的视频无法加载:

  

网址细分:'null'

样本清理管道用法:

<iframe [src]="(videoObservable$ | async)?.resourceUrl | sanitizeResourceUrl"></iframe>

管道方法本身:

transform(url: string): SafeResourceUrl {
    return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}

记录url参数的值表明最初使用参数值null调用管道,然后在值后立即再次调用。

1 个答案:

答案 0 :(得分:5)

我发现DomSanitizer没有很好地处理null值,因此下面的修改通过检查null并在卫生设置之前将输入值设置为空字符串来解决问题。

transform(url: string): SafeResourceUrl {
        if (!url) {
            url = '';
        }

        return this.sanitizer.bypassSecurityTrustResourceUrl(url);
    }