angular 1.5无范围访问http.get中的数据
angular 1.5 access data in http.get without scope
我使用的是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',
});
})();
控制台。日志给我:
这是测试的测试-->
未定义-->输出http.get
http.get 中的对象{id:1…}-->
所以我无法从http.get访问我的数据,这正是我想要的。
$http.get
是一个异步调用,这意味着程序执行不等待从服务器获取数据。
因此,当位于$http.get()
之外的console.log(self.MYDATA)
被执行时,数据还没有从服务器中提取,这就是为什么您得到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);
}
);
这里有一篇关于回调的好文章,可以帮助你!
相关文章:
- 使用Javascript/JQuery获取JSON GET数据
- jQuery在$.get数据完成后执行作业
- 使用Ajax Get方法将数据显示到特定元素中
- Codeigniter JQuery在JQuery.get请求后动态加载视图中的数据
- 使用 POST 和 GET 通过端点交换数据
- Jquery $.get() 在 javascript 中操作由查询产生的数据
- 如何显示Ajax Get-Method中的数据
- Javascript POST数据进入GET PHP数组
- 使用JS/Jquery从URL中提取GET数据
- 如何使用window.history.pushState更改GET数据
- AngularJS:将$http.get数据分配给变量
- 将 GET 数据传递给 POST 请求
- 将GET数据从一个函数传递到另一个函数
- GET数据未通过AJAX调用发送
- 将http.get数据获取到本地JSON数组变量中
- 如何将jquery提交的php表单GET数据回显到另一个javascript代码和URL中
- Angular-多个$http.get数据请求
- Chrome POST/GET数据影响内联JavaScript
- jQuery post只发送GET数据
- 将get数据保存到一个局部变量