2014-11-09 15 views
11

Sto usando ng-repeat per stampare tutte le immagini dalla cartella desiderata e quelle immagini sono in <a> perché sto usando fancyBox.Errore console angolare img src

Ecco un esempio di regolatore:

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] 
}]); 

E il modello:

<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> 

E questo codice funziona bene, mostra tutte le 14 immagini. Tuttavia, sto ricevendo questo errore nella console:

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

Come risolvere quell'errore?

+2

controllo questo: https://docs.angularjs.org/api/ng/directive/ngSrc –

risposta

18

Questo è quello che state cercando: https://docs.angularjs.org/api/ng/directive/ngSrc È perché il browser tenta di recuperare l'immagine con src che hai fornito. Se si utilizza ng-src, angular si occuperà di attendere che l'espressione sia compilata e quindi di aggiungere src all'elemento <img>.

+3

Beh, è ​​stato stupido da parte mia, Ho dimenticato di 'ng-src'. Sto ancora imparando angolare, quindi posso "permettermi" di fare quegli errori: D Cheers :) – Vucko

+0

Nessun problema. E 'stata una buona domanda. A posteriori, forse aggiorneremo il titolo in modo da riflettere l'attributo "src" dal momento che ora riteniamo che non fosse correlato a ng-repeat? – Kolban

+1

@ Kolban Hai ragione. Ho aggiornato il titolo. – Vucko

6

Nel modello, utilizzare data-ng-src anziché src. Il nuovo modello sarà

<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> 

Vedi

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

Problemi correlati