我有这个控制器用于保存个人的一些细节。我有一个单独的存储库EntityRepository,其中定义了一个从数据库获取用户性别的函数。
函数响应工作正常,当我在函数响应中的控制台上打印性别时,它工作(console.log(“inside:”,$ scope.userGender);)。
但价值不未定义我正在之外的功能(执行console.log(“外”,$ scope.userGender);)
.controller('individualDetailsCtrl', function($scope, $rootScope, $location, EntityRepository) {
$scope.userGender = "";
$scope.entity = {
name: "",
gender: $scope.userGender,
dob: "",
pan: ""
};
EntityRepository.getUserGender()
.then(function(response){
$scope.userGender = response.data.gender;
console.log("inside : ", $scope.userGender);
})
.catch(function(errorResponse) {
$scope.error = errorResponse.data
});
console.log("outside : ", $scope.userGender);
});
我想保存在响应中的性别$ scope.entity.gender,但我无法访问函数作用域之外的$ scope.userGender的值。
由于$ scope在控制器的范围内定义,我认为它应该能够访问函数响应之外的值。
所以我怎么能改正它。 –
你想纠正什么?你的代码没有问题。这就是AJAX的工作原理。在AJAX成功回调中使用'$ scope.userGender'变量,而不是在其外部。调整您的代码,使其可以使用回调函数工作。 –