$httpBackend e2e 不响应数据

$httpBackend e2e not respoding with data

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

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

问题是我可以访问服务器,但我没有取回任何数据

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