我在我的应用程序中使用AngularJs。我拨打http
电话并获得回复。响应包含一个数组,我将result
放在$scope
对象中。我在某个属性上放置watch
并尝试访问放在$ scope对象中的存储对象。如果我打印result
对象,我看到它包含数组,但是当我尝试使用length
等数组属性时,它会抛出错误。我也无法使用其他数组方法,例如results.data[0]
。
请让我知道我哪里出错了。一些用于理解目的的代码:
var processResponse = function (result) {
$scope.results = result.data;
}
$scope.$watch('attribute', function(newVal) {
console.log($scope.results.length)
});
答案 0 :(得分:2)
取决于你如何称呼它。如果结果是promisse,你可以尝试这样做:
result.then(successCallback, errorCallback);
答案 1 :(得分:1)
尝试声明/ init $ scope.results = [];在控制器的顶部。 然后方法长度不会崩溃;)
答案 2 :(得分:0)
由于它是异步请求,我不得不通过以下代码处理null:
if ($scope.results && $scope.results.data){
console.log($scope.results.data.length);
}