我一直在这里寻找同样的问题,我发现了一些东西,但似乎并不适合我。让我来描述我的情景:
我正在为自己完成的Web应用程序添加一些功能,该Web应用程序用于管理某些客户的网页开发。每个客户都有一个网页,每个客户都有一份提案网页列表,以及设计人员做过该提案的人员。
开发人员列表,能够看到谁在Web应用程序中做了什么新东西以及我的问题的原因,所以,问题是:
网络应用加载后,我会从数据库中获取开发人员列表,以及所有拥有网页的客户列表。因此,Web应用程序接下来要做的是自动选择列表的第一个客户并在另一个列表中显示其提议。要做到这一点,需要开发人员列表,但由于它还没有加载,我得到:
无法阅读财产' 0'未定义的
当我想迭代$scope.developers
对象
我为开发人员做的是$http
这样的调用:
$http({
method: 'POST',
url: url,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data) {
$scope.developers = data;
});
我知道$http
会执行异步调用,但我需要等待$scope.developers
加载数据的内容。
当我需要使用据称存储在$scope.developers
中的数据时,问题就出现了。我试图在$scope.developers
函数中调用使用.success
的函数,但同样的情况也会发生。
我试图在这个帖子中使用解决方案,但是我得到了同样的错误。
How to wait till the response comes from the $http request, in angularjs?
任何帮助?如果我的问题不明确,我会尝试更好地解释它。
答案 0 :(得分:1)
请在$scope.developers
调用之前将$http
定义为空数组,即
app.controller("someCtrl", function($scope, $http) {
$scope.developers = [];
//....
$http({
method: 'POST',
url: url,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).success(function(data) {
$scope.developers = data;
});
//..
});