Angular $ http调用对$ scope.data的成功不绑定?

时间:2013-10-14 20:11:07

标签: javascript http angularjs

调用成功时,我遇到了$ scope.items =数据的问题。我正在使用这个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时,在离开success函数后,我得到一个未定义的长度。喜欢它自己设置并失去它超出范围?任何帮助非常感谢。

1 个答案:

答案 0 :(得分:4)

$http运行时,它会立即返回[]{},具体取决于是否设置isArray。传递给successerror的函数将在以后收到数据时执行。收到此数据后,您之前的[]{}将填充数据。

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