2017-04-09 57 views
0

我正在从一个API请求数据的项目。假设我在一个HTTP请求中获取演员数据列表(包含图片URL)。一些演员的图片网址已损坏,无法使用。这种情况使我的项目有点混乱。如何忽略部分JSON数据,如果其图像URL中断

有什么办法可以跳过那些图像不可用的演员,并访问其图像可用的所有其他演员的数据?

代码示例将不胜感激

+0

是'获得演员列表一个http请求或多个http请求?演员响应数据是否包含他/她的图片网址,并且您使用此网址来获取图片? “通过访问所有这些特定请求”是什么意思? – shaochuancs

+0

是的。这是一个单一的http获取响应,其中演员的姓名和图片URL采用JSON格式。是的,我使用URL来获取图像。通过访问所有这些特定请求,我的意思是,特定演员名称的JSON数据的图像URL不会在JSON演员详细信息数组列表中破坏。 – 9094US

回答

0

有2个解决方案为您的问题。

  1. 一旦演员的图片URL被破坏,请使用默认图片作为其src。代码如下:<img src="actorX.jpg" onerror="this.src='defaultActor.jpg'">

  2. 一旦演员的图片网址被破坏,隐藏整个演员内容。代码如下:<img onerror="window.hideErrorActor(this)" src="actorX.jpg">。例如制作一个jsfiddle。如果您需要,请检查它。

这些2个解决方案的关键是img元件的onerror事件处理程序。当图片加载失败时(例如网址中断),img元素将触发error事件,并且注册到onerror属性的功能将会运行。在功能里面,你可以做任何你想做的事情。

+0

这工作正常。当我在angularJS中使用ng-repeat来处理来自JSON数据的图像URL时,如何实现它? – 9094US

+0

如果你在AngularJS中使用'ng-repeat'来渲染演员的内容,你可以给每个演员块一个'id'(无论是来自JSON数据还是来自'$ index'),并且当' onerror'发生。 – shaochuancs

+0

@ 9094US是你的问题解决了吗?如果是的话,也许你可以“接受”这个答案? – shaochuancs

相关问题