編集済み
$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();
};
});
したがって、少なくともロード時にサムネイルが作成されます。ブラウザーのサイズが変更されたときに確認する方法を試してみます。