new sap.ui.commons.Image({src: "http://localhost:9090/images/some-image.jpg"});
如果http返回 404或某些错误,则假设上述操作失败。问题是请求是由Openui5内部发送的,因此无法从服务器端拦截。在这种情况下,是否有任何方法可以提供备用的 src ,如下所示:
如果出现http错误, 重定向网址 src:"http://localhost:8080/images/no-image.png"
我一直在尝试以下但是没有给出结果:
$(document).ajaxError(function myErrorHandler(event, xhr, ajaxOptions, thrownError) {
$.ajax({
// Resend the req
url: "http://localhost:8080/images/no-image.png"
});
//imageFile.setSrc("http://localhost:9090/images/no-image.png");
});
答案 0 :(得分:0)
您可以使用 setAlt 方法设置替代图片(如果找不到)
答案 1 :(得分:0)
我找到了一个使用formatter function
作为收到的源路径的解决方案:
new sap.ui.commons.Image({src: {path : 'itemImg',formatter: function(itemImg){
var ImageObject = new Image();
ImageObject.src = itemImg;
if(ImageObject.height>0){
//alert("Ping worked!");
return itemImg;
}else {
//alert("Ping failed :(");
return "http://localhost:9090/images/no-image.png";
}
}}}).addStyleClass("itemImg"),
@Qualiture建议的替代解决方案
ImageObject.onload = function() {
//alert('image loaded successfully.');
return itemImg;
};
ImageObject.onerror = function(){
//alert('image loading failed');
return "http://localhost:9090/images/no-image.png";
};
注意:如果您认为使用height 0
的图片毫无意义并且更好地显示default image
,则使用第一个解决方案,否则后者更有效。