DomSanitizer错误"URL Segment:'null'"

ala*_*lan 3 angular angular-dom-sanitizer

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

网址细分:'null'

样品消毒管道用法:

<iframe [src]="(videoObservable$ | async)?.resourceUrl | sanitizeResourceUrl"></iframe>
Run Code Online (Sandbox Code Playgroud)

管道方法本身:

transform(url: string): SafeResourceUrl {
    return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
Run Code Online (Sandbox Code Playgroud)

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

ala*_*lan 5

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

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

        return this.sanitizer.bypassSecurityTrustResourceUrl(url);
    }
Run Code Online (Sandbox Code Playgroud)