角度で非常に奇妙な問題が発生しています。run メソッドで $rootScope.user_info を定義しました。しかし、コントローラーでルート スコープをフェッチしているときに、コントローラーで未定義のメソッド $rootScope.user_info を取得することがあります。ページを更新したときにこれが時々起こる理由は何ですか?
コードスニペットは次のとおりです。
myApp.run(['$http', '$rootScope','$location','localStorageService','$window','$translate','$timeout', function($http, $rootScope,$location,localStorageService,$window,$translate,$timeout) {
$rootScope.current_user_id = localStorageService.get("CurrentUserId");
$rootScope.get_user_profile = function() {
$http.get('/api/v1/employees/'+$rootScope.current_user_id).success(function(response) {
$rootScope.user_info = response["data"]["user_info"];
});
};
if ($rootScope.current_user_id) {
$rootScope.get_user_profile();
}
}]);
myApp.controller('ProfileCtr', ['$rootScope','$scope','Employee','fileReader','$translate','$filter','checkResponse','toaster', function($rootScope,$scope, Employee,fileReader,$translate,$filter,checkResponse,toaster){
$scope.langs = [ { name: "en",value: "English"}, { name: "de_DE", value: "German"}, { name: "fr_FR", value: "French"} ];
$scope.set_language = function() {
$scope.selectLang = $filter('filter')($scope.langs, { name: $rootScope.user_info.eselected_language})[0];
}
$scope.set_language();
});