调用成功时,我遇到了$ 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函数后,我得到一个未定义的长度。喜欢它自己设置并失去它超出范围?任何帮助非常感谢。
答案 0 :(得分:4)
当$http
运行时,它会立即返回[]
或{}
,具体取决于是否设置isArray
。传递给success
或error
的函数将在以后收到数据时执行。收到此数据后,您之前的[]
或{}
将填充数据。
听起来您正在运行$http
并在数据有机会从服务器检索之前对其进行测试。如果您想使用这些数据,那么您的相关代码可能应该在success
函数内部,以推迟工作,直到您拥有要使用的数据为止。