使用api调用值作为我的Angular应用程序中div的背景图像

问题描述 投票:0回答:1

我正在创建一个电影搜索应用程序,需要使用图像作为div的背景。我从api调用中获取了背景图像的URL。

我试过这个

<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+')'}"

仍然没有运气。

谁知道我怎么能解决这个问题?## Heading ##

html css angular themoviedb-api
1个回答
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 + '\')');
}
© www.soinside.com 2019 - 2024. All rights reserved.