2017-09-10 1 views
0

Je veux utiliser mon contrôleur pour obtenir des images lien de chien avec une API mais je ne suis pas en mesure d'utiliser le résultat. Le problème est, je ne peux pas obtenir le lien dans l'objet.

enter image description here

si je change response.data.message que par response.data, c'est pourquoi je reçois

enter image description here

quand j'ajoute console.log (response.data) avant la retour, voici ce que je reçois:

enter image description here

Si je tente JSON.parse (response.data), je a obtenu ceci:

enter image description here

Savez-vous comment faire?

Merci pour votre aide

+0

pouvez-vous s'il vous plaît élaborer sur la réponse ou l'erreur que vous obtenez? –

+0

quand je regarde dans la console, j'obtiens ceci: Object {$$ state: Object}. Quand j'ouvre l'objet dans la console, je peux voir le lien mais je suis incapable de l'atteindre – Gromain

+0

pouvez-vous joindre une capture d'écran ou quelque chose de la console, afin que nous puissions vous aider? – Sletheren

Répondre

0

Ce que vous voyez dans la console est la promesse elle-même. si vous souhaitez afficher la valeur (qui, dans ce cas, sera l'URL), puis le faire comme ça

console.log(images("kelpie").value); 

Si vous voulez voir alors les données de réponse, vous devez ajouter le console.log() dans le rappel then(). le faire comme ceci:

.then(function successCallback(response) { 
    console.log(response.data.message); 
    return response.data.message; 
    } 
+0

Si j'ajoute ".value", cela signifie "non défini" dans la console. Je dois obtenir le lien avec un retour et non dans une variable – Gromain

0

pouvez-vous essayer un avec JSON.parse (response.data), puis chercher propriété de message de celui-ci.

0

Vous devez utiliser la promesse ici. Une façon de le faire est -

angular.module('demo', []) 
 
    .controller('myController', ['$scope', 'demoService', function($scope, demoService){ 
 
    demoService.test().then(function(response) { 
 
     $scope.url = response; 
 
    }) 
 
    }]) 
 
    .factory('demoService', ['$http', '$q', 
 
    function($http, $q) { 
 
    \t var demoService = {}; 
 

 
\t demoService.test = function() { 
 
\t \t var deferred = $q.defer(); 
 
\t \t $http.get('https://jsonplaceholder.typicode.com/posts/1').then(
 
    function(response) { 
 
      response = "https://www.w3schools.com/bootstrap/paris.jpg"; 
 
\t \t \t \t \t deferred.resolve(response); 
 
\t \t \t \t }, function(error) { 
 
\t \t \t \t \t console.log("some error occur"); 
 
\t \t \t \t \t console.log(error); 
 
\t \t \t \t \t deferred.reject(error); 
 
\t \t \t \t } 
 
\t \t) 
 
\t \t return deferred.promise; 
 
\t } 
 

 
\t return demoService; 
 
    }]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="demo" ng-controller="myController"> 
 
    <img ng-src="{{url}}" /> 
 
</div>

utilisation promesse objet deffer

Refference - https://docs.angularjs.org/api/ng/service/ $ q

code de travail de violon JS - https://jsfiddle.net/Shubhamtri/9y9ezkdt/1/