如何使用 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; }