Сегмент URL-адреса ошибки DomSanitizer: 'null'

Недавно в нашем приложении Angular 2 мы добавили видеокомпонент через iframe для извлечения внешних встроенных видео. Кроме того, мы дезинфицируем эти URL-адреса ресурсов через канал, в котором используется DomSanitizer. Проблема заключалась в том, что мы часто, но не постоянно, получали следующую ошибку, и встроенное видео не загружалось:

Сегмент URL: 'null'

Пример использования дезинфицирующих труб:

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

Сам метод pipe:

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

Регистрация значения параметра url показывает, что канал сначала вызывается со значением параметра null, а затем снова сразу после него со значением.


person alan    schedule 04.02.2017    source источник


Ответы (1)


Я обнаружил, что DomSanitizer не очень хорошо справляется со значениями null, и поэтому приведенная ниже модификация устранила проблему, проверив значение null и установив для входного значения пустую строку до очистки.

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

        return this.sanitizer.bypassSecurityTrustResourceUrl(url);
    }
person alan    schedule 04.02.2017