我正在调用控制器以获取API值。如何在$ http方法之外传递数组?
我需要将数组传递pa[]
给$scope.myData = pa;
。
首先,console.log(pa)打印值[10,20,30,40]。
其次,console.log(pa)清空array []。
function Ctrl($scope, $http) {
var url = "https://spreadsheets.google.com/feeds/list/0AsXjbsnPIu06dGswZUV4WX/values?alt=json-in-script&callback=angular.callbacks._0";
var pa = [];
$http({
method: 'JSONP',
url: url
}).success(function (data) {
for (i = 0; i < data.feed.entry.length; i++) {
var entry = data.feed.entry[i];
pa.push(entry.gsx$productivity.$t);
console.log(pa); //[10,20,30,40,50]
}
});
console.log(pa) // [] empty array
$scope.myData = pa;
}
如何在$ success回调函数之外获取数组?
此代码是异步的。在服务有机会从您的API调用中获取值之前pa
分配给。$scope.myData``$http
您需要使用$q
服务承诺库来控制代码流。像这样:
function Ctrl($scope, $http, $q) {
var url = "https://spreadsheets.google.com/feeds/list/0AsXjbsnPIu06dGswZUV4WX/values?alt=json-in-script&callback=angular.callbacks._0";
var pa = [];
var paPromise = $q.defer()
$http({
method: 'JSONP',
url: url
}).success(function(data) {
for (i = 0; i < data.feed.entry.length; i++) {
var entry = data.feed.entry[i];
pa.push(entry.gsx$productivity.$t);
console.log(pa); //[10,20,30,40,50]
}
paPromise.resolve(pa)
});
$scope.myData = paPromise.promise;
}
在这里,我们注入$q
服务并paPromise
使用它实例化变量。接下来,我们给诺言$scope.myData
。一旦在$http
成功方法中解决了承诺,AngularJS就会通知您$scope
并更新值,并将其反映在模板/
DOM上。
问题内容: 我已经建立了一个工厂来处理我的控制器的功能,但是不知何故,控制器会在其中一个功能上返回错误: 错误:Auth.getUser(…)。成功不是函数@ http:// localhost:8080 / app / controllers / mainCtrl.js:10:1 … 我不知道这是怎么回事,其余功能似乎工作正常? 主控制器: 问题答案: 请参阅$ http服务文档中的 “ 弃用声
我已经添加了标题作为响应。但当我从$HTTP调用测试路由api时,它仍然会抛出错误。 我完全是一片空白,我知道我只是错过了一些愚蠢的东西。请帮我解决这件事。 谢谢 更新:解决方案 通过在php文件中添加header,它现在可以工作了。头('access-control-allow-origin:*'); 头('access-control-allow-methods:GET,PUT,POST,DE
我有一个actor可以从外部系统(UDP/TCP)接收消息。根据传入数据的内容,有时我希望actor回调代码的非AKA部分。 换句话说,我不想用调用和actor并等待一些传入数据,而是异步回调。 我如何实现这一点而不关闭调用对象(在创建ActorRef时会在回调中传递琐碎的内容,但这会捕获调用者)?
本文向大家介绍js自定义回调函数,包括了js自定义回调函数的使用技巧和注意事项,需要的朋友参考一下 背景分析 首先看一段js的代码,主要实现添加的时候首先通过异步请求判断是否存在,如果不存在的话,在进行添加操作: 当我添加一个数据的时候,我首先通过判断是否在数据库中存在(当然,如果前后台彻底分离的话,不应该前端进行业务逻辑的判断,前端只应该,用来展示数据),首先,isExited()的请求是aja
这个递归编码是错误的还是仅仅是那个控制台。即使执行递归,log()也不总是被执行? 在控制台中执行testrecursion不会返回任何错误。 信息控制台日志显示 再次执行测试递归会在信息控制台日志中显示这一点。 第三次执行testrecursion会在信息控制台日志中显示这一点。 在对此进行了数十次测试后,递归步骤似乎偶尔被调用。输出似乎是随机的。预期输出为 这是否看起来像递归正确发生,只是控制
问题内容: 我了解回调函数的本质,因为该函数在作为参数传递给另一个函数后会再次执行。但是,我对回调函数内部的变量来自何处感到困惑,如以下node.js示例所示: 变量req和res如何填充?我们将不胜感激一个示例,该示例解释了如何仅调用res.render(…)而无需自己声明res。 问题答案: 它们来自在调用时调用普通非回调函数时来自的位置。 如果您有此功能, 您知道在调用add时a和b来自于,