0

私は angularjs でプロジェクトを行っています。私の要件は、$rootScope を使用して、別のアプリ モジュール コントローラーから別のアプリ モジュール サービスに値を渡す必要があることです。

Here my part of code 

ログインモジュールとコントローラー

 var loginApp = angular.module('loginApp', [ 'ngCookies' ]);

 loginApp.controller('loginCtrl', function($scope, $cookies,    $cookieStore,
    $rootScope) {
$scope.redirect = function() {
    if ($scope.name == 'admin' && $scope.password == 'admin') {
        $rootScope.loggedInUser = $scope.name;
        window.location = "pages/index.html";
    } else
        alert('User / Password Invalid');
} 

});

ここに私のapp.jsファイル

ログインモジュールを別のモジュールに注入しました

  var smartCities = angular.module('smartCities', [ 'ngRoute', 'ngAnimate',
    'ui.bootstrap', 'ngTouch', 'ui.grid.exporter', 'ui.grid',
    'ui.grid.selection', 'ui.grid.autoResize', 'ngCookies', 'loginApp' ]);

以下、loggedInuser にアクセスします。

 smartCities.run(function($rootScope, $location, $cookies, $cookies,
    $cookieStore) {
$rootScope.$on("$routeChangeStart", function(event, next, current) {
    console.log($rootScope.loggedInUser);
    $location.path(next.$$route.originalPath);

});

});

しかし、コンソールでは次のようなメッセージが表示されます

 undifined

私がどこで間違ったのか教えてください

4

2 に答える 2

1

この目的のために localstorage または sessionstorage を使用できます。

ログインコントローラー:

 loginApp.controller('loginCtrl', function($scope, $cookies,    $cookieStore,
    $rootScope) {
 $scope.redirect = function() {
if ($scope.name == 'admin' && $scope.password == 'admin') {
    localStorage.loggedInUser = $scope.name;
    window.location = "pages/index.html";
} else
    alert('User / Password Invalid');
} 

ログイン ユーザー :

 smartCities.run(function($rootScope, $location, $cookies, $cookies,
$cookieStore) {
$rootScope.$on("$routeChangeStart", function(event, next, current) {
console.log(localStorage.loggedInUser);
$location.path(next.$$route.originalPath);

});
于 2016-08-31T07:31:45.527 に答える