Javascript 将http响应数组放入$scope后无法使用它
我在应用程序中使用AngularJs。我打了一个Javascript 将http响应数组放入$scope后无法使用它,javascript,angularjs,ajax,http,Javascript,Angularjs,Ajax,Http,我在应用程序中使用AngularJs。我打了一个http电话并得到了响应。响应包含一个数组,我将其作为result放入$scope对象中。我在某个属性上放置了一个watch,并尝试访问$scope对象中存储的对象。如果我打印结果对象,我会看到它包含数组,但当我尝试使用数组属性(如长度时,它会抛出一个错误。我也无法使用其他数组方法,例如results.data[0] 请告诉我哪里出了问题。一些用于理解目的的代码: var processResponse = function (result) {
http
电话并得到了响应。响应包含一个数组,我将其作为result
放入$scope
对象中。我在某个属性上放置了一个watch
,并尝试访问$scope对象中存储的对象。如果我打印结果
对象,我会看到它包含数组,但当我尝试使用数组属性(如长度
时,它会抛出一个错误。我也无法使用其他数组方法,例如results.data[0]
请告诉我哪里出了问题。一些用于理解目的的代码:
var processResponse = function (result) {
$scope.results = result.data;
}
$scope.$watch('attribute', function(newVal) {
console.log($scope.results.length)
});
由于是异步请求,我必须通过以下代码处理null:
if ($scope.results && $scope.results.data){
console.log($scope.results.data.length);
}
由于是异步请求,我必须通过以下代码处理null:
if ($scope.results && $scope.results.data){
console.log($scope.results.data.length);
}
这取决于你怎么称呼它。如果结果是承诺,您可以尝试这样做:
result.then(successCallback,errorCallback)代码>取决于您如何称呼它。如果结果是承诺,您可以尝试这样做:
result.then(successCallback,errorCallback)代码>只需尝试声明/init$scope.results=[];在控制器的顶部。
然后方法长度无法崩溃;) 只需尝试声明/init$scope.results=[];在控制器的顶部。
然后方法长度无法崩溃;) 你能给我看看航海日志吗。因为在我尝试打印长度时它是一个ajax和异步的,所以结果还没有添加到范围中。因此它抛出了打字机错误。你能显示日志吗。因为在我尝试打印长度时它是一个ajax和异步的,所以结果还没有添加到范围中。因此,这是抛出打字机错误。我认为这是一个优雅的解决方案,我将使用。谢谢,我认为这是一个优雅的解决方案,我将使用。谢谢