2016-04-07 15 views
0

ich einen Mock-Server habe,

backendMock.run(function($httpBackend){ 
 
     $httpBackend.whenGET('views/login.html').passThrough(); 
 
     $httpBackend.whenGET('views/home.html').passThrough(); 
 
     $httpBackend.whenGET('views/quote.html').passThrough(); 
 

 
    var quotes = [{quote:'aint bout how hard you hit'}]; 
 

 
    $httpBackend.whenGET('/quotes').respond(quotes); 
 

 
    
 
      
 
    }); 
 

mit einigen Daten reagieren, um die Daten aus diesem Mock-Server zu holen I $ http Service

bin mit

app.controller("quoteCtrl",['$scope','$stateParams','$http',function($scope,$stateParam,$http){ 
 
    
 
    $scope.myquote=$stateParam.id; 
 
    $http.get('/quotes').success(function(data){ 
 
     alert(data.quote); 
 
    }); 
 
    
 
    }]);

Problem ist, ich bin in der Lage, den Server zu schlagen, aber ich bekomme keine Daten zurück

Antwort

0

quotes ist noch nicht definiert, $httpBackend.whenGET('/quotes').respond(quotes); wird ausgeführt. Definieren Sie es vor.

Auch Ihr Code zeigt data.quotes, aber data ist [{quote:'aint bout how hard you hit'}];. Es ist also kein Objekt, sondern ein Array, das ein einzelnes Element enthält, und dieses Element ist ein Objekt mit dem Attribut quote, nicht quotes.

So sollte der Code eher

sein
alert(data[0].quote); 

Sie auch nicht success() verwenden sollte: es veraltet ist. Verwenden Sie then():

$http.get('/quotes').then(function(response){ 
    alert(response.data[0].quote); 
}); 
+0

nicht funktioniert habe ich versucht, danke für die Korrektur obwohl – Shubham

+0

Wenn Sie Hilfe möchten, müssen Sie genauer sein als „nicht funktioniert“. Was erwarten Sie und was passiert stattdessen genau? –

+0

danke es funktioniert gut. Ich behandelte Daten nicht als Array, das das Problem war – Shubham