Ошибка DomSanitizer "Сегмент URL: 'null'"

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

Сегмент URL: "ноль"

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

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

Сам метод трубы:

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

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

1 ответ

Решение

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

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

        return this.sanitizer.bypassSecurityTrustResourceUrl(url);
    }
Другие вопросы по тегам