$ httpBackend e2e没有重新编码数据

时间:2016-04-07 06:17:04

标签: angularjs httpbackend

我有一个模拟服务器响应一些数据



    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);

    
         
    });
    




从这个模拟服务器获取数据我正在使用$ http服务



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




问题是我能够点击服务器,但我没有收到任何数据

1 个答案:

答案 0 :(得分:0)

执行quotes时尚未定义

$httpBackend.whenGET('/quotes').respond(quotes);。在之前定义

此外,您的代码显示为data.quotes,但data[{quote:'aint bout how hard you hit'}];。所以它不是一个对象,而是一个包含单个元素的数组,而这个元素是一个具有名为quote的属性的对象,而不是quotes

所以代码应该是

alert(data[0].quote);

您也不应该使用success():它已被弃用。使用then()

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