Comment appeler une fonction dans «ng-src»

Je dois pouvoir appeler une fonction pour exécuter du code afin de récupérer dynamicment la source d’une image. L’extrait de code suivant montre un exemple de ce que je veux:

  

Je suis sûr que cela doit être simple mais je ne trouve rien dans la documentation de ng-src ! Quelqu’un d’autre a-t-il déjà touché ça?

Merci d’avance!

La directive (exemple basé sur les réponses)

D’autres ont recommandé une directive. Je ne peux pas poster de code client et j’ai écrit un court exemple de ce que cela pourrait ressembler dans plunker ( voir ici ). La directive de base elle-même est la suivante:

 app.directive("imageSource", function (){ return { link: function (scope, element, attrs){ element.attr("src", scope.imageUrlArray[attrs.imageSource]); } }; }); 

Je sais que ce que j’ai ici comme exemple pourrait probablement être fait avec le ng-repeat en utilisant la variable dans un ng-src mais cela sert d’exemple de ce à quoi ressemblerait une directive si nécessaire.

  

Violon

Bien, est arrivé à la fin:

JavaScript:

  angular.module('MyApp', []) .controller('Ctrl2', function($scope) { }) .directive('mySrc', function() { return { ressortingct: 'A', link: function ( scope, elem, attrs ) { //replace test with whatever myFunction() does elem.attr('src', 'test1'); } }; }); 

HTML:

 

Violon

Ne serait-il pas préférable de transmettre myFunction comme argument à la directive personnalisée? De cette façon, nous découplons les deux et pouvons facilement changer la fonction à transmettre dans le futur.

HTML

  

JS:

 angular.module('testApp', []) .controller('TestCtrl', function($scope) { $scope.myFunction = function() { return 'http://soffr.miximages.com/angularjs/roadshow-promo.png'; } }) .directive('mySrc', function() { return { ressortingct: 'A', scope: { callback: '&' }, link: function ( scope, elem, attrs ) { elem.attr('src', scope.callback()); } }; }) 

http://jsfiddle.net/GLS2a/