1

브로드 캐스트시 라우팅을 수행하고 라우팅을 통해 $ rootScope. $의 매개 변수를 컨트롤러에 전달해야합니다.

$rootScope.$on('unauthorized_access', function (event, args) { 
    $location.path('/login:' + args.msg); 
}); 

이제는 효과가 있습니다.

$routeProvider 
.when('/', { 
    templateUrl: 'mainApp/landingPage/login.html' 
}) 
.when('/login::msg', { 
    templateUrl: function(params) { 
     if (params) { 
      // The params can be printed in console from here... 
      console.log(params); 
     } 
     return 'mainApp/landingPage/login.html'; 
    }, 
    controller: 'loginController' 
}) 
.otherwise({ 
    redirectTo: '/' 
}); 

이제까지는 괜찮아 보입니다. 하지만 loginController에 매개 변수를 전달해야합니다. 나는 시도했다,

.when('/login::msg', { 
    templateUrl: function(params) { 
     if (params) { 
      console.log(params); 
     } 
     return 'mainApp/landingPage/login.html'; 
    }, 
    controller: 'loginController', 
    pageParams : params 
}) 

그러나 나는 그것을 잘못하고 있다고 생각한다. 도와주세요. 어떤 도움을 주시면 감사하겠습니다. 고맙습니다.

편집 : 시나리오를 추가합니다. 고정 된 시간 후에 '토큰'이 유효하지 않게되고 사용자가 로그인 화면으로 리디렉션되면 모든 화면에서 login-string에 메시지 문자열을 전달해야합니다. 이제 사용자가 처음 도착하면 표시 할 메시지가 없습니다. 는 따라서, 이것은 내가 방송 메시지를 전달하는 방법이다

$rootScope.$broadcast('unauthorized_access', param); 
+0

http 인터셉터를 사용하여 세션 일관성을 관찰하는 것이 좋습니다. 401 오류가 발생하면 세션을 종료하고 사용자를 로그인 페이지 – Foker

+0

으로 리디렉션 할 수 있습니다. 그게 내가하고있는 일입니다. 그러나 나는 또한 메시지를 전달해야합니다. 그래서 나는 브로드 캐스트를 통해 그 메시지 (리디렉션을 야기한)를 넣었습니다. 이것은 401 오류로 리디렉션하는 서비스입니다. service.responseError = function (resp) { var param = {}; if (resp.error == 401) { param.msg = "토큰 만료 됨"; } $ rootScope. $ broadcast ('unauthorized_access', param); return resp; }; –

+1

다음 해답을 찾으십시오. – Foker

답변

1

를 사용하여 해결 :

app.controller("newsController", function (message) { 
    $scope.message = message; 
}); 

더 : 컨트롤러에서 다음

$routeProvider 
    .when("/news", { 
     templateUrl: "newsView.html", 
     controller: "newsController", 
     resolve: { 
      message: function(messageService){ 
       return messageService.getMessage(); 
     } 
    } 
}); 

, 당신은 데이터를 아래와 같이 얻을 수 있습니다 여기에 :

http://odetocode.com/blogs/scott/archive/2014/05/20/using-resolve-in-angularjs-routes.aspx

+1

감사합니다. Thalaivar, 정확히 말해서, 내가 찾고있는 것이 었습니다. 나도 라자 니 팬이야. Kabali를 기다리는 .. 신속한 대답을위한 thnks. 나는 너의 것을 받아 들일 것으로 표시 할 것이다. –

+0

@JayarajPS : thalaivar 팬을 만나는 것은 ... – Thalaivar

관련 문제