La diectiva ng-src cumple una función similar a ng-bind.
Si mostramos en una página una imagen en la que parte de la URL es una expresión de AngularJS mediante ””{{ }}”” ¿qué ocurre hasta que se carga AngularJS?
Resulta que el propio navegador intentará cargar una URL de una imagen que contendrá ””{{ }}”” y obviamente no la encontrará, mostrando el típico dibujito de que no ha encontrado la imagen, aunque una vez cargado AngularJS se cargará la imagen correcta.
Veamos un ejemplo:
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js"></script>
</head>
<body ng-controller="PruebaController">
<img src="http://www.cursoangularjs.es/lib/tpl/dokubook/images/{{fileName}}" >
<img ng-src="http://www.cursoangularjs.es/lib/tpl/dokubook/images/{{fileName}}" >
<script src="script.js"></script>
</body>
</html>
src se verá el icono de que no ha cargado la imagen aunque luego ya aparece la imagen correcta.ng-src no se ve nada hasta que no se carga la imagen correcta.
var app = angular.module("app", []);
alert("Parando la aplicación para que se vea el icono de que no se ha podido cargar la imagen")
app.controller("PruebaController", function($scope) {
$scope.fileName = "dokuwiki-128.png";
});
$scope el nombre del fichero a cargar.