2015-01-30 2 views
0

의 일환으로 $의 HTTP를 수행 나는까지 내 응용 프로그램이로드의 전에 $의 HTTP 요청을 수행하는 등 요청의 목적이다AngularJS와는 : 설정

그래서 UI, 컨트롤러, 서비스를 필요가 없습니다 사용자가 헤더에 명명 된 쿠키가 있는지 여부에 따라 서버에서 유효한 세션이 있는지 확인하십시오.

약속을 사용하면 응답을 처리 할 수 ​​있고 유효한 세션이 아니면 존재하지 않는 경우 사용자를 내 로그인 페이지로 리디렉션합니다.

제 질문은 초기 세션 확인 요청이 어디에 생겨야하는지, 초기 생각은 응용 프로그램 모듈을 설정할 때 실행 블록을 사용하는 것입니다.

이 내용이 의미가 있습니까? 아니면 다른 접근 방법을 사용해야합니까?

답변

1

실행 구성에서이 문제를 해결할 때 응용 프로그램의 초기화를 보류 할 수 없습니다. 이는 첫 번째 페이지가로드되고 종속성 (컨트롤러, 서비스)이 초기화된다는 것을 의미합니다. 모든 것이 초기화되기 전에이 검사를하고 싶다면 앵귤러 부트 스트랩 전에 요청을해야합니다.

당신이 당신의 index.html을의 끝에서 당신의 HTML 요소 및로드에서 NG-응용 프로그램을 제거하면 당신은있는 스크립트를 수동으로 각도 부트 스트랩 할 수 있습니다

angular.bootstrap(document, ["myAppModule"]); 

또한 전에 $의 HTTP 요청을 할 수 있습니다 너는 부트 스트랩 각도. 귀하의 경우이 모양은 다음과 같습니다.

var initInjector = angular.injector(["ng"]); 
    var $http = initInjector.get("$http"); 

    return $http.get("config.json").then(function (response) { 
     //this is to load the config to a constant 
     angular.module("myAppModule").constant("config", response.data); 
     angular.bootstrap(document, ["myAppModule"]); 
    }, function (errorResponse) { 
     console.error("config not found!"); 
    }); 
+0

요청이 진행되는 동안 '인증 중'로딩 표시기를 보여주고 싶습니다. 나는 이걸 가서 대답 할께. 감사 – mindparse