15

I'm using ng-repeat to print all the images from desired folder, and those images are in <a> because I'm using fancyBox.

Here's an example of controller:

var ParentCtrl = function ($scope) {
    $scope.getTimes=function(n){ // for the ng-repeat
        return new Array(n);
    }; 
};

app.controller('projectController', ['$scope','$injector', function($scope, $injector) {
    $injector.invoke(ParentCtrl, this, {$scope: $scope});

    $scope.title = 'project';
    $scope.image_url = 'img/project/';
    $scope.image_num = 14; //image count -> [0.jpg, 1.jpg, 2.jpg, ..., 13.jpg]
}]);

And the template:

<a href="" class="fancybox" rel="project-gallery"
    data-ng-repeat="t in getTimes(image_num) track by $index" 
    data-ng-href="{{image_url+($index)+'.jpg'}}">
        <img src="{{image_url+($index)+'.jpg'}}">
</a>

And this code works fine, it shows all the 14 images. However, I'm getting this error in the console:

GET http://localhost/projects/project-name/%7B%7Bimage_url+($index)+'.jpg'%7D%7D 404 (Not Found)

How to fix that error?

1

2 Answers 2

21

This is what you are looking for: https://docs.angularjs.org/api/ng/directive/ngSrc It's because browser tries to fetch the image withsrc you provided. If you use ng-src, angular will take care of waiting until the expression is compiled, and then append src to the <img> element.

Sign up to request clarification or add additional context in comments.

3 Comments

Well, that was stupid of me, I forgot about ng-src. I'm still learning angular so I can "afford" to make those errors :D Cheers :)
No probs. It was a good question. On hind-sight now, maybe we update the title to reflect the "src" attribute since we now have a good belief that it wasn't ng-repeat related?
Doh. Same mistake here! Forgot abiut ng-src ... I blame switching between too many languages/environments/frameworks!! x)
6

In your template, please use data-ng-src as opposed to src. Your new template will become

<a href="" class="fancybox" rel="project-gallery"
    data-ng-repeat="t in getTimes(image_num) track by $index" 
    data-ng-href="{{image_url+($index)+'.jpg'}}">
        <img data-ng-src="{{image_url+($index)+'.jpg'}}">
</a>

See

https://docs.angularjs.org/api/ng/directive/ngSrc

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.