我有一个 Angular 数据服务,如下所示:
//dataservice.js
export class DataService {
constructor($rootScope, $http, $q, $log) {
$log.info('DataService constructor', this);
this.$http = $http;
}
fetch(url){
return this.$http.jsonp(url, {params: {callback: 'JSON_CALLBACK'}});
}
}
如果我从我的 Controller 中调用它,如下所示:
DataService.fetch('https://passbook-manager.jsapps.io/api/v1/passes');
它返回一个如下所示的 promise :
Promise {$$state: Object, success: function, error: function, then: function, catch: function…}$$state: Objecterror: function (fn) {success: function (fn) {__proto__: Object
如何获取 promise 的值并将其返回,以便我可以更新我的范围?
我已经尝试过,但它没有返回任何数据:
DataService.fetch('https://passbook-manager.jsapps.io/api/v1/passes').then(function( val ) {
$scope.val = val;
console.log(val)
});
最佳答案
好的,@dfsq 解释的问题是 API。它不支持 JSONP。将我的代码更改为:
return this.$http.get(url, {params: {callback: 'JSON_CALLBACK'}});
然后就完美运行了。
关于javascript - Angular Promise 和 DataService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526316/