Я использую Angular некоторое время, и я всегда использую ngShow, ngHide, ngIf и т.д.
Проблема, с которой я всегда сталкивалась при использовании этих директив для отображения и скрытия изображений, - это одна секунда сразу после того, как директива устанавливает значение true или false, а изображения еще не загружены. Страница просто висит на месте, а затем изображения появляются в маленьких кусках.
Есть ли способ отслеживать, были ли все изображения в представлении получены с сервера и закончены ли рендеринг? Таким образом, я мог бы использовать загрузчик или что-то еще, пока все изображения не будут готовы на 100%.
Если вы хотите выполнить некоторый код, когда изображение полностью загружено, вы можете использовать настраиваемую директиву в AngularJS, например:
app.module['myApp'].directive('imageOnload', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('load', function() {
// call the function that was passed
scope.$apply(attrs.imageOnload);
});
}
};
});
Применение:
<img ng-src="src" image-onload="customFonction()" />