Best way to preload images with Angular.js

前端 未结 9 902
野性不改
野性不改 2020-12-07 16:04

Angular\'s ng-src keeps previous model until it preloads image internally. I am using different image for the banner on each page, when I switch routes, i change main view,

9条回答
  •  星月不相逢
    2020-12-07 16:49

    If you want you can pass the image fail and image loader as attributes for the directive....

    myApp.directive("mySrc", function() {
        return {
          link: function(scope, element, attrs) {
            var img, loadImage;
            var IMAGE_LOAD="123.jpg";
            var IMAGE_FAIL="123.jpg";
            img = null;
    
            loadImage = function() {
    
              element[0].src = IMAGE_LOAD;
    
              img  = new Image();
              img.src = attrs.mySrc;
    
              img.onload = function() {
                element[0].src = attrs.mySrc;
              };
              img.onerror=function ()
              {
                  element[0].src = IMAGE_FAIL;
              }
            };
    
            loadImage();
    
    
          }
        };
      });
    

提交回复
热议问题