Я пытаюсь отправить запрос в файл php с одного контроллера в angular и получаю ответ. Я сохранил ответ в переменной rootScope, которая инициализируется в методе controller.run() значением 0.
Теперь я пытаюсь использовать обновленный rootScope в другом контроллере, чтобы отобразить ответ с php-страницы. Но rootScope не обновляется и по-прежнему показывает 0.
Вот мой код.
Ниже приведен метод запуска, в котором инициализируется rootScope.
adminController.run(function ($rootScope) {
$rootScope.n = 0;
});
Ниже приведен код для контроллера 1, где я запрашиваю ответ с php-страницы и обновляю переменную rootScope.
adminController.controller('adminLoginController', function($scope,$rootScope,$http,$window) {
$scope.loginCheck = function(event,user){
var request = $http({
method: "post",
url: "../_/php/loginCheck.php",
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
request.success(function (data) {
$rootScope.n=data;
$rootScope.$apply();
$window.location.href = 'admin.html#admin_home';
});
}
});
Вот код для моего второго контроллера, в котором я использую переменную rootScope. Здесь возникает проблема, поскольку rootScope не обновляется и отображает только 0, с которым он инициализирован.
adminController.controller('adminHomeController', function($scope,$rootScope,$http,$window) {
$scope.uname=$rootScope.n;
alert($scope.uname);
});
Может ли кто-нибудь дать мне знать, где я ошибаюсь.
$rootScope.$apply();
Не требуется, дайджест запускается автоматически сhttp
. Любые ошибки консоли? Попробуйте поместить журнал консоли в свой.run
, чтобы увидеть, не перезапускается ли он в навигации? - person Dylan Watt   schedule 27.01.2016