2017-07-20 6 views
-2

Wie kann ich in AngularJS warten und ein Standardbild anzeigen, bis die Direktive das reale Bild aktualisiert (das noch geladen wird).Warten auf angularJS image

Ich brauche nur der $ scope.imageLoaded auf true

+0

Mögliche Duplikat [Set Standard-Bild vor dem eigentlichen Bild geladen ist] (https://stackoverflow.com/questions/34722000/set-default-image-before-actual-image-is-loaded) –

Antwort

0
<div ng-show="imageLoaded"><!--your image--></div> 
<div ng-show="!imageLoaded"><!--default image--></div> 

in Ihrem Controller jede Sekunde und nicht auf Last um das Bild zu überprüfen gesetzt, wenn das Bild fertig geladen ist.

+0

aber Wie überprüfe ich das? Wie kann ich sicherstellen, dass die URL bereits geladen und gültig ist? – fstdv

0

sollten Sie eine <div> mit der Breite und der Höhe des Bildes, auf das Sie warten, festlegen.

0
Basic idea is create a directive and add it as attribute to img tag. 

JS: 

app.directive('imageonload', function() { 
    return { 
     restrict: 'A', 
     link: function(scope, element, attrs) { 
      element.bind('load', function() { 
       alert('image is loaded'); 
      }); 
      element.bind('error', function(){ 
       alert('image could not be loaded'); 
      }); 
     } 
    }; 
}); 
HTML: 

<img ng-src="{{src}}" imageonload /> 
+0

das ist nur für onload gut wie kann ich es jede Sekunde überprüfen und den Prozess stoppen, während Bild vorhanden ist – fstdv