angularで1つのコントローラーからphpファイルにリクエストを送信しようとしており、応答を取得しています。controller.run() メソッドで 0 で初期化される rootScope 変数に応答を格納しました。
PHPページからの応答を表示するために、更新されたrootScopeを別のコントローラーで使用しようとしています。しかし、rootScope は更新されておらず、まだ 0 が表示されています。
これが私のコードです。
以下は、rootScope が初期化される run メソッドです。
adminController.run(function ($rootScope) {
$rootScope.n = 0;
});
以下は、PHP ページからの応答を要求し、rootScope 変数を更新しているコントローラー 1 のコードです。
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 変数を利用している 2 番目のコントローラーのコードです。ここで問題が発生するのは、rootScope が更新されず、初期化された 0 のみが表示されるためです。
adminController.controller('adminHomeController', function($scope,$rootScope,$http,$window) {
$scope.uname=$rootScope.n;
alert($scope.uname);
});
どこが間違っているのか教えてもらえますか。