wonglik
wonglik

Reputation: 1069

How to access image properties after angular ng-repeat?

I am trying to get image width and height of an image that I pull from server in order to apply proper style for it. So I am using ng-repeat to fill template :

<div ng-repeat="feed in feeds"> 
<div class="span2" >
    <img ng-src='{{feed.image_url}}'>
</div> ...

My question is how do I access img object so I can change parent div class? Or maybe what is the angular.js way of doing thing like that?

Edit : To be more specified. I want to access img object to get its width and height to calculate its size to apply style to parent div (currently with class span2).

Upvotes: 5

Views: 8485

Answers (1)

Ben Lesh
Ben Lesh

Reputation: 108481

I don't know what you're trying to do, but it sounds like a job for a directive.

app.directive('styleParent', function(){ 
   return {
     restrict: 'A',
     link: function(scope, elem, attr) {
         elem.on('load', function() {
            var w = $(this).width(),
                h = $(this).height();

            var div = elem.parent();

            //check width and height and apply styling to parent here.
         });
     }
   };
});

and you'd use it like so:

<img ng-src="imageFile" style-parent/>

EDIT: If you're not using jquery, this will vary a little.

Upvotes: 14

Related Questions