【发布时间】:2015-08-02 12:26:36
【问题描述】:
我想要一个指令,将背景图像设置为特定图像(如果存在)或默认图像。
url 采用 /images/cards/card{{$index}}.jpg 的形式来自 ng-repeat,但实际上只有一些图像存在。
这样做了,但是失败的$http 请求被记录到我不想要的控制台(因为这段代码的重点是要知道某些图像不存在)。有什么建议吗? (似乎<img>标签有一个可以被捕获的错误事件,但我找不到证据background-image也有一个。
angular.module("stickers")
.directive('bkgDiv', function($http) {
return {
scope: {
url: '@'
},
link: function(scope, elem, attrs) {
// console.log("bkgDiv", scope.url);
$http.get(scope.url)
.success(function() {
elem.css({backgroundImage: "url("+scope.url+")"});
})
.error(function() {
elem.css({backgroundImage: "url(/images/animal.png)"});
})
}
}
});
【问题讨论】:
-
我会告诉你确保
scope.url不为空,但我不知道你的代码。是否有可能scope.url不会为空且不指向有效的图片网址? -
@MotiAzu 确实,
scope.url通常不会指向有效的网址 - 已更新问题 -
据此stackoverflow.com/questions/22113286/…window.error 可能是唯一的方法。
标签: javascript angularjs