작업 중 페이지 별로 접근 권한 기능을 구현하기위해 이런 저런 방법을 생각해보다가
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 |