DomSanitizer выдает ошибку

Я доверяю URL-адресу .. DomSanitizer, как показано ниже:

myFunction(videoLoc:any):void { 
    videoLoc = this.sanitizer.bypassSecurityTrustResourceUrl(videoLoc); 
}

но на консоли появляется ошибка:

GET unsafe:myFunction(https://thewikihow.com/video_c9F5kMUfFKk)

Мой HTML-код выглядит следующим образом:

<tr *ngFor = "let fetch of fetchApi.data.featured">
  <td>
     <video width = "320" height = "240" controls>                                                                                                                                              
     <source src=myFunction({{fetch.video_location}})>
     </video>
  </td>                                                                                                                                                                                                                                                                                                                                     
</tr> 

По этой причине я не мог отображать свои видео на странице HTML. Какую ошибку я делаю?

можешь попробовать myFunction(videoLoc:any):void { return this.sanitizer.bypassSecurityTrustResourceUrl(videoLoc); }

Ajay S 11.06.2018 09:47

Опять та же ошибка

N Sharma 11.06.2018 09:48

сейчас ставим этот <source [src] = "myFunction(fetch.video_location)">

Ajay S 11.06.2018 09:49

Я сделал это, но теперь выдает ошибку TypeError: Cannot read property 'bypassSecurityTrustResourceUrl' of undefined at FetchApiComponent.push../src/app/fetch-api/fetch-

N Sharma 11.06.2018 09:52

Можете ли вы распечатать URL-адрес console.info, например myFunction(videoLoc:any):void { console.info(videoLoc); return this.sanitizer.bypassSecurityTrustResourceUrl(videoLoc); }

Ajay S 11.06.2018 09:53

Даю мне URL: https://thewikihow.com/video_c9F5kMUfFKk

N Sharma 11.06.2018 09:55

проверьте значение этого console.info(this.sanitizer.bypassSecurityTrustResourceUrl(vi‌​deoLoc));

Ajay S 11.06.2018 09:56

Выдает ошибку

N Sharma 11.06.2018 09:57

какую ошибку он выдает?

Ajay S 11.06.2018 09:58

TypeError: невозможно прочитать свойство bypassSecurityTrustResourceUrl из undefined в FetchApiComponent.push ../ src / app / fetch-api / fetch-

N Sharma 11.06.2018 09:59

отладить этот console.info(this.sanitizer)

Ajay S 11.06.2018 10:00
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
11
1 503
1

Ответы 1

Ваш шаблон кажется неправильным, он должен быть

<source [src] = "myFunction(fetch.video_location)">

и просто верните videoLocation после очистки

myFunction(videoLoc:any):void {
 return this.sanitizer.bypassSecurityTrustResourceUrl(videoLoc);
}

или вы можете справиться с этим с помощью трубы,

@Pipe({ name: 'safe' })
export class SafePipe implements PipeTransform {
  constructor(private sanitizer: DomSanitizer) {}
  transform(url) {
    return this.sanitizer.bypassSecurityTrustResourceUrl(url);
  }
}

а потом,

  <source [src] = "mfetch.video_location | safe">

Я сделал это, но все равно получаю ошибку TypeError: Cannot read property 'bypassSecurityTrustResourceUrl' of undefined at FetchApiComponent.push../src/app/fetch-api/fetch-api

N Sharma 11.06.2018 09:56

Опять выкидывает ошибку с использованием трубы - Uncaught Error: Template parse errors: The pipe 'safe' could not be found

N Sharma 11.06.2018 10:08

вам нужно добавить канал под провайдерами в module.ts

Sajeetharan 11.06.2018 10:08

ты создал трубу?

Sajeetharan 11.06.2018 10:11

Это мой код в компоненте: @Pipe({ name: 'safe' }) export class FetchApiComponent implements OnInit, PipeTransform { transform(url) { return this.sanitizer.bypassSecurityTrustResourceUrl(url); }. Вот что я сделал в HTML: <tr *ngFor = "let fetch of fetchApi.data.featured"> <td ></td> <td> {{fetch.id | json}} </td> <td>{{fetch.video_location}}</td> <td><video width = "320" height = "240" controls> <source [src] = "fetch.video_location | safe"></video></td> ‌​ </tr>

N Sharma 11.06.2018 10:14

Позвольте нам продолжить обсуждение в чате.

Sajeetharan 11.06.2018 10:15

Другие вопросы по теме