Отредактировано
Мне нужен массив в $scope.images
, обработанный функцией в соответствии с размером элемента.
test.html выглядит так
<div image-gallery>
<div ng-repeat='img in images'>
<img ng-src='{{img.thumbnail}}' style='width: {{img.newwidth}}'>
</div>
</div>
Мне просто интересно, как создать простую директиву галереи изображений, которая будет использовать свою ширину для такой функции, как
$scope.images = CreateThumbnails($scope.images, element.innerWidth())
CreateThumbnails вычисляет новый атрибут newwidth
для изображений в $scope.images
. Конечно, было бы неплохо, если бы они вычислялись при каждом изменении размера браузера, но простого вычисления при загрузке было бы достаточно.
Больше правок
Хорошо, так что я могу по крайней мере изменить $scope.images
, если я назову его так
$scope.images = Images.get({}, function(images) {
CreateThumbnails(images, 1000)
}
К сожалению, это в контроллере, поэтому все еще интересно, как получить доступ к $scope.images в директиве, чтобы я мог использовать этот элемент.
Обновлять
Уф, наконец-то хоть что-то заработало. я только что
$scope.images = Images.get({}, function() {
CreateThumbnails($scope.images, $scope.elementwidth)
)
А затем в директиве, содержащей изображения
app.directive("imageGallery", function() {
return function(scope, element, attrs) {
scope.elementwidth = element.innerWidth();
};
});
Так что, по крайней мере, он создает миниатюры при загрузке, я попробую посмотреть, как я могу проверить, когда размер браузера изменяется.