Ich habe Bilder, die aussehen wie <img ng-src="dynamically inserted url"/>
. Wenn ein einzelnes Bild geladen wird, muss ich die iScroll refresh () -Methode anwenden, damit das Bild scrollbar ist.
Was ist der beste Weg, um festzustellen, wann ein Bild vollständig geladen ist, um einen Rückruf auszuführen?
javascript
html
angularjs
Sergei Basharov
quelle
quelle
Antworten:
Hier ist ein Beispiel für das Aufrufen von Image Onload http://jsfiddle.net/2CsfZ/2/
Die Grundidee besteht darin, eine Direktive zu erstellen und sie als Attribut zum img-Tag hinzuzufügen.
JS:
HTML:
quelle
Ich habe dies ein wenig geändert, damit benutzerdefinierte
$scope
Methoden aufgerufen werden können:Die Richtlinie:
Hoffe, jemand findet es sehr nützlich. Danke @mikach
Die
doThis()
Funktion wäre dann eine $ scope-Methodequelle
@ Oleg Tikhonov: Habe gerade den vorherigen Code aktualisiert .. @ mikach Danke ..)
quelle
Gerade den vorherigen Code aktualisiert ..
und Richtlinie ...
quelle
Meine Antwort:
quelle
Im Grunde ist dies die Lösung, die ich letztendlich verwendet habe.
$ apply () sollte nur unter den richtigen Umständen von externen Quellen verwendet werden.
Anstatt Apply zu verwenden, habe ich die Bereichsaktualisierung auf das Ende des Aufrufstapels geworfen. Funktioniert so gut wie "scope. $ Apply (attrs.imageonload) (true);".
quelle
$apply()
sollte nur von externen Quellen verwendet werden"? Ich folge nicht.