如何检查URL中的图像是否损坏

时间:2019-02-07 07:53:32

标签: angular ionic4

我正在从事ionic 4项目。我的项目是从url获取数据json。我想检查来自url的图像是否损坏。如果坏了,再显示一张图片。我曾尝试过使用不同的代码,但没有人在工作。

我正在使用的代码是

   <ion-row *ngFor="let item of items" justify-content-around test-center>


          <ion-col >
              <img src="/images/data/operators/{{item.flight.airline.code.icao}}_logo0.png"  onerror="this.src='images/data/operators/{{item.flight.airline.code.iata}}_{{item.flight.airline.code.icao}}.png'">

          </ion-col>


        </ion-row>

运行时出现错误

ERROR Error: Uncaught (in promise): Error: Template parse errors:
Binding to event property 'onerror' is disallowed for security reasons, please use (error)=...
If 'onerror' is a directive input, make sure the directive is imported by the current module.

取决于错误,如果我使用(error)=我又遇到另一个错误是

ERROR Error: Uncaught (in promise): Error: Template parse errors:
Parser Error: Got interpolation ({{}}) where expression was expected at column 69 in [this.src=

有什么解决办法吗?

2 个答案:

答案 0 :(得分:2)

(错误)捕获由img触发的错误事件。使用类似的东西:

<img src="..." (error)="handleImgError($event, item)">

在您的组件中创建函数handleImgError()

function handleImgError(ev: any, item : any){
   let source = ev.srcElement;
   let imgSrc = `images/data/operators/${item.flight.airline.code.iata}_${item.flight.airline.code.icao}.png`;

   source.src = imgSrc;

}

答案 1 :(得分:2)

您应该尝试一下。如果找不到图片,则会加载备用图片

 <img   class="img-style"  [src]="user.photo ? user.photo : 'https://images.vexels.com/media/users/3/145908/preview2/52eabf633ca6414e60a7677b0b917d92-male-avatar-maker.jpg'">