AngularJS

[AngularJS] controller 2번 실행 현상

SongMinu 2019. 6. 5. 14:59
728x90

작업 중 페이지 별로 접근 권한 기능을 구현하기위해 이런 저런 방법을 생각해보다가

app_main.js 안에 선언 되어 있는 main_ctrl 컨트롤러는 어느 페이지에서나 항상 유지하게 구현 되어 있어서 이곳에서 계정 권한 값을 추출 한 후

$rootScope.auth = 받아온 계정 권한 값

이렇게 선언하고 각 페이지별 js파일에서 사용하려고 했더니 잘 안되었다.

그래서 html단에다가 ng-controller="main_ctrl"을 선언 해주니 잘 먹히길래 됬구나! 하고

다른 작업을 추가 진행 했었는데

app_main.js안에 들어 있는 함수 중에 1분단위로 함수가 돌아가는게 있는데

크롬 개발툴 중에 Network를 보니 이 함수가 엄청 많이 실행되어 있는 것을 확인했다.

페이지 이동중에도 무조건 한번 실행되고, 1분마다 1번실행이아니라 2번, 3번 실행이 된다.

몇 시간을 봐도 이해가 안됐었다. 계속 구글링을 하다 찾은게

html안에 ng-controller를 주입하면 그부분 때문에 한번 더 탄다는 것이다...

 

즉,

header.html - app_main.js (main_ctrl)

user.html - user.js (UserCtrl)이렇게 있는데

user.html 안에 ng-controller="main_ctrl" 이게 있어서

header.html은 항상 유지하다 보니 user.html 페이지를 열면 app_main.js에 들어 있는 main_ctrl을 한 번 타고, user.html안에 ng-controller에 선언 되어 있는 main_ctrl 때문에 한번 더 탄다는 말이었다.

user.html에 ng-controller를 삭제하면 다른 페이지에서 이페이지로 와도 main_ctrl 컨트롤러를 타지 않고, 소스 있는 그대로 1분후 실행하는 함수가 실행된다.

반응형

'AngularJS' 카테고리의 다른 글

[AngularJS] $Interval 사용법 (setInterval)  (0) 2021.01.19
[AngularJS] 앵귤러 forEach문  (0) 2019.06.05