我试图从NPR API调用文章列表。我有一个返回JSON的工作URL。然而,在我的控制器的某个地方,我迷失了对象。当我在console.log中进行测试时,它返回[object Object]而没有别的。我的服务如下:
app.factory('nprService', function($resource) {
//call npr api
return $resource('http://api.npr.org/queryid=61&fields=title,byline,text,image,all&output=JSON...
和我的控制员:
app.controller('ArticleListCtrl', function($scope, nprService) {
//call the service and store as a variable
$scope.article = nprService.get();
});
我尝试使用查询来获取结果,就像这样,但是它返回了一个JSON对象,因此显然没有用。
//call the service and store as a variable
nprService.query(function(data) {
$scope.article = data;
});
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:1)
您需要使用promise构造来获取数据。控制器代码可以重写为:
app.controller('ArticleListCtrl', function($scope, nprService) {
//call the service and store as a variable
nprService.get().then(function(result){
$scope.article = result.data;
});
答案 1 :(得分:0)
$ resource.get()函数返回一个promise。它应该以这种方式使用:
nprService.get().success(function(data, status, headers, config){
$scope.article = data;
}).error(function(data, status, headers, config){
console.log(status);
});
答案 2 :(得分:0)
使用Angular 6你可以尝试这个
myFunctionName(){
this.http.get(`http://www.thesoftdesign.com`)
.map(res => res.json())
.subscribe(data => {
this.data = data;
console.log('data', this.data);
});
}