无法从 Angular JS 中的 $resource.query() 访问数据
Cant Access data out of $resource.query() in Angular JS
我正在使用$resource的查询函数如下
resource.query(function(details){
$scope.details=details;
console.log($scope.details);
})
console.log($scope.details);
在上面的代码中,第一个 console.log 正在打印准确的数据。但第二个显示未定义。
控制台输出如下。
angular.js:10661 XHR finished loading: GET "http://localhost:9000/app/myLeaveApplication/myLeaveApplication.html".
myLeaveApplicationController.js:10 undefined
angular.js:10661 XHR finished loading: GET "http://localhost:9000/assets/data/data.json"
myLeaveApplicationController.js:7
[Resource, Resource, Resource, $promise: Promise, $resolved: true]
所以有人请帮助我知道为什么会这样吗?
这是因为resource.query是一个异步方法,所以第10行在回调函数之前执行,而且还是undefined。然后,一旦查询完成,它就会调用回调,并且 $scope.details 现在已经有了数据,所以这是预期的行为。这是初学 JS 的程序员常犯的困惑。
这是因为resource.query是异步方法所以console.log($scope.details);行执行
在将详细信息分配给 $scope.details
之前
您可以尝试以下解决方案:
resource.query(function(details){
$scope.details=details;
console.log($scope.details);
});
$scope.$watch('details', function() {
console.log($scope.details);
});
我正在使用$resource的查询函数如下
resource.query(function(details){
$scope.details=details;
console.log($scope.details);
})
console.log($scope.details);
在上面的代码中,第一个 console.log 正在打印准确的数据。但第二个显示未定义。 控制台输出如下。
angular.js:10661 XHR finished loading: GET "http://localhost:9000/app/myLeaveApplication/myLeaveApplication.html".
myLeaveApplicationController.js:10 undefined
angular.js:10661 XHR finished loading: GET "http://localhost:9000/assets/data/data.json"
myLeaveApplicationController.js:7
[Resource, Resource, Resource, $promise: Promise, $resolved: true]
所以有人请帮助我知道为什么会这样吗?
这是因为resource.query是一个异步方法,所以第10行在回调函数之前执行,而且还是undefined。然后,一旦查询完成,它就会调用回调,并且 $scope.details 现在已经有了数据,所以这是预期的行为。这是初学 JS 的程序员常犯的困惑。
这是因为resource.query是异步方法所以console.log($scope.details);行执行 在将详细信息分配给 $scope.details
之前您可以尝试以下解决方案:
resource.query(function(details){
$scope.details=details;
console.log($scope.details);
});
$scope.$watch('details', function() {
console.log($scope.details);
});