我正在使用Angular 1.5。
我无法从http.get访问http.get中的数据。 让我解释一下:
我有我的组件:
(function(){
'use strict';
class myComponent {
constructor(
$http,
$scope)
{
var self = this;
self.test="this is a test";
$http.get(MYAPI).then(function(response){
self.MYDATA = response.data;
console.log(self.MYDATA)
});
console.log(self.test)
console.log(self.MYDATA)
}
}
angular.module('myApp')
.component('myApp.test', {
templateUrl: 'myTemplate.html',
controller: myComponent,
controllerAs:'vm',
});
})();
console.Log给我:
这是一个测试 - >为测试
undefined - >出了http.get
对象{id:1 ...} - >在http.get
中所以我无法通过http.get访问我的数据,这就是我想要的。
答案 0 :(得分:0)
$http.get
是一个异步调用,意味着程序执行不会等待从服务器获取数据。
因此,当执行位于console.log(self.MYDATA)
之外的$http.get()
时,尚未从服务器获取数据,这就是您获得undefined error
的原因。
要解决此问题或处理异步调用,您可以执行以下操作:
var promise = $http.get(MYAPI);
然后在回调的帮助下以下列方式访问数据:
promise.then(
function successCallBack(response)
{
self.MYDATA = response.data;
console.log(self.MYDATA)
}
).then(
function errorCallBack(response)
{
console.log(response);
}
);
这是一篇关于callbacks的好文章,可以帮到你!