0

我在调用成功时遇到了 $scope.items=data 的问题。我正在使用这个 jsfiddle: http: //jsfiddle.net/SAWsA/11/但是,我这样做了,而不是硬编码的项目:

   $scope.items=$http({method: 'GET', url: '/test/database/two'}).
   success(function(data, status, headers, config) {
   return data;
   }).
   error(function(data, status, headers, config) {
   $scope.status=status;
   });

并尝试了这个:

$http({method: 'GET', url: '/test/database/two'}).
success(function(data, status, headers, config) {
$scope.items=data;
}).
error(function(data, status, headers, config) {
$scope.status=status;
});

当我在成功函数中添加警报时,我看到长度为 25,所以我知道我正在获取数据。但是,当我在 $http 运行后检查 $scope.items 时,在我离开成功函数后会得到一段未定义的长度。就像它设置自己并在范围之外失去设置?非常感谢任何帮助。

4

1 回答 1

4

运行时$http,它将立即返回,[]或者{}取决于是否isArray设置。当接收到数据时,您传递给success或稍后执行的函数。error当收到此数据时,[]{}您之前的数据将被填充。

听起来您$http在有机会从服务器检索数据之前正在运行和测试数据。如果您想使用数据,那么您的相关代码可能应该在success函数内部以推迟工作,直到您拥有要使用的数据。

于 2013-10-14T20:21:52.507 回答