Для того, чтобы загрузить фильм юность в IFRAME, я следующий в моем шаблоне:функция ngSrc называется бесконечно в angular2
<iframe [src]="getYouTubeUrl(currentItem.id)" frameborder="0" allowfullscreen></iframe>
В компоненте я определил:
getYouTubeUrl(id:string):SafeResourceUrl {
let url:string = `https://www.youtube.com/embed/${id}`;
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
Как-то , эта функция называется бесконечно (в то время как полученный URL не изменяется). В результате видео нельзя загрузить. Что здесь может быть не так?
Использование чистой трубы вместо. См. Также http://stackoverflow.com/questions/38037760/how-to-set-iframe-src-in-angular-2-without-causing-unsafe-value-exception/38037914#38037914 и выпустить на github https://github.com/angular/angular/issues/11518 – yurzui
Спасибо, это работает! :) Я не знаю, почему изменение обнаружения выполняется несколько раз без трубы, но только один раз с трубой? Может быть, потому, что теперь функция возвращает строку (url), которая является примитивной, а не SafeResourceUrl, которая не является примитивной? – dndr
Чистая труба будет выполнена только тогда, когда она обнаружит чистое изменение входного значения. С другой стороны, ваша функция внутри шаблона будет вызывать каждый «Application.tick» http://stackoverflow.com/questions/39757603/unraveling-angular-2-book-chapter-1-example-5/39761822#39761822 – yurzui