Использование значения вызова api в качестве фонового изображения для div в моем приложении Angular

#html #css #angular #themoviedb-api

#HTML #css #angular #themoviedb-api

Вопрос:

Я создаю приложение для поиска фильмов, и мне нужно использовать изображение в качестве фона для div. Я получаю URL для фонового изображения из вызова API.

Я попробовал это

 <div *ngFor="let movie of movies.results">
  <div
    class="thumbnail" style="background-image: 
    url(https://image.tmdb.org/t/p/w500{{movie.poster_path}})"
  >
    -- id: {{ movie.id }} -- name: {{ movie.title }}
  </div>
</div>

  

это предупреждение, которое я получаю

WARNING: sanitizing unsafe style value background-image: url(https://image.tmdb.org/t/p/w500/fw02ONlDhrYjTSZV8XO6hhU3ds3.jpg)

и изображение не отображается.

Затем я пробую это с одним из значений, чтобы посмотреть, сработает ли это

this.sanitizer.bypassSecurityTrustUrl(`
https://image.tmdb.org/t/p/w500"${this.movies.results[0].poster_path}
`);

но я все еще сталкиваюсь с той же проблемой??

Затем я попробовал это

background-image: [ngStyle]="{'background-image': 'url(' object.image ')'}"

По-прежнему безуспешно.

Кто-нибудь знает, как я могу решить эту проблему?## Заголовок ##

Ответ №1:

Похоже , вы были действительно близки к использованию DomSanitizer и bypassSecurityTrustUrl . Я считаю, что использование того же подхода, но с использованием bypassSecurityTrustStyle , должно решить проблему для вас.

 <div *ngFor="let movie of movies.results">
  <div
    class="thumbnail" [style.background-image]="getSafeStyle(movie.poster_path)"
  >
    -- id: {{ movie.id }} -- name: {{ movie.title }}
  </div>
</div>

getSafeStyle(url: string) {
  return this.sanitizer.bypassSecurityTrustStyle('url(''   url   '')');
}