image pas de mise à jour à l'aide de ng-src dans Angulaire
Dans mon contrôleur, je l'appelle un service. Ce service effectue une requête sur un fichier PHP qui me donne une URL vers une image.
La raison pour cela est l'image réside à l'intérieur d'un "Media Vault" sens j'ai besoin de générer un hash de l'URL comme pour la visualiser:
http://xxxx.vo.llnwd.net/o35/s/xxx/test/thumbs/slide1.jpg?e=1365006137&h=5852aeaf5beeeebff05a601801b61568
L'URL ci-dessus a déjà expiré de sorte que vous ne verrez rien de ce lien.
Ma balise d'image est comme suit:
<img id="thumbnail" class="glow" ng-src="{{currentThumb}}" width="200" height="150"/>
currentThumb dans mon contrôleur est:
$scope.currentThumb = ImageService.getImage({
'type' : 'thumb',
'index' : $scope.currentIndex + 1,
'location' : $scope.location
});
et mon service ressemble à ceci:
app.factory('ImageService', function($http)
{
var image = null;
return {
promise:null,
getImage: function($data)
{
this.promise = $http.post('resources/auth.php',$data, {timeout:20000}).success(function(response)
{
image = response;
log(response);
})
}
}
});
L'actuel ImageService renvoie une URL (au moins, il indique l'url de la console), et en cliquant sur le journal de résultat dans la console, l'image se charge bien. Une raison pour laquelle l'image n'est pas mise à jour?
thumbnail.src = ImageService.getImage({...});
aussi avec pas de chance. Je reçois http://localhost/vjs/undefined 404 not found
Comment mettre un return dans
getImage()
après que vous obtenez votre réponse. Ou êtes-vous à la résolution de votre promesse?J'ai essayé
return image;
, après j'ai mis image = response
et toujours rien. C'est comme $scope.currentThumb = ImageService.getImage({...});
n'est pas réellement le réglage de quoi que ce soit. Doit être un problème avec mon service?Quel est le
this.promise
partie, êtes-vous d'appeler la méthode pour résoudre cette promesse? Essayez juste d'appeler la $http.post
sur son propre sans paramètre égal à this.promise
. Également inclure le return image;
partie.Je vais faire un violon..peut-être que vous pouvez le faire fonctionner d'une certaine manière
OriginalL'auteur Ronnie | 2013-04-03
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas comment vous appelez cela, mais un autre moyen qui pourrait être mieux est d'appeler cette
ImageService.getImage()
dans un résoudre bloc du contrôleur. C'est tout chargé avant que le contrôleur et la vue de la prise en charge.jsfiddle
http://jsfiddle.net/HYDmj/1/
vue
code
Oh tant pis, ce n'est pas un cas d'utilisation. Voici quelques réponses de la mine à la détermination de bloc: stackoverflow.com/questions/11972026/... stackoverflow.com/questions/12307501/...
Ah ok gotcha. Je comprends ce que tu veux dire. Fondamentalement/charge de rendre tout avant l'affichage de la vue. Ouais dans ce cas, je ne suis pas en mesure de le faire. Merci encore pour la réponse à portée de main. M'a aidé énormément
Ouais exactement, heureux de vous aider.
OriginalL'auteur Justen