return `$resource` 如何承诺响应?
How return `$resource` promise response?
我需要多个区域的用户详细信息。我尝试使用通用函数 return 详细信息。但我得到的结果是 undefined
。我明白,我需要使用 $differed
来获得结果。但是我对我目前的情况没有任何想法。
有人帮我吗?
这是我的函数:
$scope.currentUserInfo = function () {
var userDetails;
server.getProfile.get().$promise.then(function ( response ) {
if( response.Message.toUpperCase().indexOf('SUCCESS') != -1) {
return userDetails = response;
}
return "Not able to get the user details this time"
})
return userDetails;
}
$scope.currentUser = $scope.currentUserInfo();
console.log( $scope.currentUser ) //undefined.
var function1 = function () {
$scope.currentUserInfo(); //once user details available do further
$scope.age = $scope.currentUser.age;
}
var function2 = function () {
$scope.currentUserInfo(); //once user details available do further
$scope.name = $scope.currentUser.name;
}
server.getProfile.get() 是一个异步调用。
即使 server.getProfile.get()
调用尚未完成,$scope.currentUserInfo
函数中的 return userDetails;
行也会被执行。
试试这个:
$scope.currentUserInfo = function () {
server.getProfile.get().$promise.then(function ( response ) {
if( response.Message.toUpperCase().indexOf('SUCCESS') != -1) {
$scope.currentUser = response;
}
$scope.message = "Not able to get the user details this time";
})
}
$scope.currentUser
将在 ajax 调用完成后填充。我假设您在 html 绑定中使用 $scope.currentUser
,因此当值更改时,它会自动反映在您的视图中
我需要多个区域的用户详细信息。我尝试使用通用函数 return 详细信息。但我得到的结果是 undefined
。我明白,我需要使用 $differed
来获得结果。但是我对我目前的情况没有任何想法。
有人帮我吗?
这是我的函数:
$scope.currentUserInfo = function () {
var userDetails;
server.getProfile.get().$promise.then(function ( response ) {
if( response.Message.toUpperCase().indexOf('SUCCESS') != -1) {
return userDetails = response;
}
return "Not able to get the user details this time"
})
return userDetails;
}
$scope.currentUser = $scope.currentUserInfo();
console.log( $scope.currentUser ) //undefined.
var function1 = function () {
$scope.currentUserInfo(); //once user details available do further
$scope.age = $scope.currentUser.age;
}
var function2 = function () {
$scope.currentUserInfo(); //once user details available do further
$scope.name = $scope.currentUser.name;
}
server.getProfile.get() 是一个异步调用。
即使 server.getProfile.get()
调用尚未完成,$scope.currentUserInfo
函数中的 return userDetails;
行也会被执行。
试试这个:
$scope.currentUserInfo = function () {
server.getProfile.get().$promise.then(function ( response ) {
if( response.Message.toUpperCase().indexOf('SUCCESS') != -1) {
$scope.currentUser = response;
}
$scope.message = "Not able to get the user details this time";
})
}
$scope.currentUser
将在 ajax 调用完成后填充。我假设您在 html 绑定中使用 $scope.currentUser
,因此当值更改时,它会自动反映在您的视图中