#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 '')');
}