Ошибка 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);
}