我有一个模拟服务器响应一些数据
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);
});
}]);

问题是我能够点击服务器,但我没有收到任何数据
答案 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);
});