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?
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With