3

最近在我们的 Angular 2 应用程序中,我们添加了一个视频组件,iframe用于拉入外部嵌入式视频。此外,我们通过利用DomSanitizer. 问题是我们经常但并非始终如一地收到以下错误并且嵌入的视频无法加载:

网址段:“空”

消毒管道使用示例:

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

管道方法本身:

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

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

4

1 回答 1

6

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

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

        return this.sanitizer.bypassSecurityTrustResourceUrl(url);
    }
于 2017-02-04T16:44:07.780 回答