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