(function(){ "use strict"; angular .module("app.utils") .directive('imgPreloader', imagePreloader); function imagePreloader($parse, appSettings) { return { restrict: 'A', link: function spinnerLoadLink(scope, elem, attrs) { scope.$watch('ngSrc', function watchNgSrc() { elem.hide(); elem.after(''); }); elem.on('load', function onLoad() { elem.fadeIn(800); elem.next('i.fa-spin').remove(); }); } }; } imagePreloader.$inject = [ "$parse", "app.SETTINGS" ]; })();