如何将一个$ http.get响应分配给一个变量AngularJS
关于堆栈溢出问题有很多类似的问题,但是使用这些技巧并没有帮助。
我正在学习angular.js,并且正在API上尝试使用$ http.get,但在将响应分配给变量时遇到了问题。
下面的get请求在加载时运行。 (这是我app.js文件)
var app = angular.module('store',[]);
app.controller("StoreController", function($scope,$http){
var request = $http.get('/test').then(function (response) {
$scope.data = response;
return response;
});
request.then(function (data) {
this.products = $scope.data
});
});
的下面是从对请求的响应(I可以在浏览器的控制台视图中看到这一点,但不被显示的数据。)
[
{
name: 'Dowayne',
surname: 'Breedt',
catchphrase: 'wallawallabingbangamIright?',
reviews: [
{
stars: 5,
body: 'i love stuff',
soldOut: false,
},
{
stars: 4,
body: 'meh',
soldOut: true,
},
{
stars: 3,
body: 'shittake mushrooms',
soldOut: false,
},
]
}
];
这是所有垃圾数据(只是为了练习),但我不能理解为什么它不会显示在HTML页面上,如果我将上面的代码片段直接分配给this.products,那么它的工作原理完美/
我错过了什么?
谢谢。
使用时少辉为然后使用。数据属性来获取数据。
var app = angular.module('store',[]);
app.controller("StoreController", function($scope,$http){
var request = $http.get('/test').then(function (response) {
$scope.data = response.data;
return response.data;
});
});
嗨。感谢您的回复,我用上面的代码替换了我的请求,然后将响应分配给this.products,但它仍不会将该对象分配给该变量。 –
嗨,这结束了工作,我意识到,而不是手动格式化JSON的API端,我不得不json_encode一个正常的PHP数组。 –
你可以请尝试下面的语法?
$http.get('/test').success(function(response) {
$scope.products= response.data;
});
您好,感谢我。试过这个,它仍然获得与我的请求相同的数据,但仍然不显示应该的信息。我不应该以不同的方式格式化我的回复吗? –
为什么你使用.then()两次 –
你在浏览器中显示的是什么对象数据或产品? –
我编辑它并删除额外的。然后,它和以前一样,浏览器应该显示的所有内容都是每个评论的主体,并且它是这样做的,但是当我通过http.get获取信息时,这是行不通的。当我查看检查元素时,我可以看到/ test的请求,并得到上述响应的响应 –