如何使用 angularjs promises预加载css background-image 我想做的是我可以这样使用的东西: link: function(scope, element, attrs){ element.hide(); url = attrs.url; preload(url).then(function(loadedImageURL){ element.css({
我想做的是我可以这样使用的东西:
link: function(scope, element, attrs){
element.hide();
url = attrs.url;
preload(url).then(function(loadedImageURL){
element.css({
background-image: "url('" + loadedImageURL + "')"
});
});
element.fadeIn();
}
请注意,这不是this one的重复问题.
试试这个:function preload(url) {
var deffered = $q.defer(),
image = new Image();
image.src = url;
if (image.complete) {
deffered.resolve();
} else {
image.addEventListener('load', function() {
deffered.resolve();
});
image.addEventListener('error', function() {
deffered.reject();
});
}
return deffered.promise;
}
