我有這個控制器用於保存個人的一些細節。我有一個單獨的存儲庫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'變量,而不是在其外部。調整您的代碼,使其可以使用回調函數工作。 –