我想从网址加载背景图片,如果其中一个不可用,请不要加载,只是抛出错误信息。我在AngularJS中为此创建了一个服务,我的问题是,我无法处理不可用的图像错误。
app.service('Images', ['$q', '$http', function ($q, $http) {
this.loadImage = function (uri) {
var deffered = $q.defer();
var img = new Image();
img.onerror = function() {
deffered.resolve(false);
};
img.onload = function () {
console.log('img loaded');
};
img.src = uri;
return deffered.promise;
};
return this;
}]);
当我处理返回的promise时,它不应该在浏览器控制台中删除错误。如果onload
已执行,则onerror
函数不应运行。我不知道,我的代码的基础是什么with this example。 (我试图使用工厂,但没有帮助。)
感谢您的帮助!
答案 0 :(得分:0)
我不确定你的Image类是做什么的,但我认为你需要使用
deffered.reject(false);
而不是
deffered.resolve(false);
img.onload也应改为
img.onload = function () {
deffered.resolve(img);
};