게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
angular js에서 SPA에 방식으로 했을시 문제점이 있습니다.
게시물ID : programmer_13430짧은주소 복사하기
작성자 : 문식이당
추천 : 0
조회수 : 477회
댓글수 : 6개
등록시간 : 2015/09/21 12:01:14
안녕하세요 angular로 SPA 형식의 웹을 작성하다가 SPA의 특성인지 아래와 같은 문제점이 발생했습니다.


    <div ng-include="'src/app/html/header-m.html'"></div>
        <div ng-view=""></div>
    <div ng-include="'src/app/html/footer-m.html'"></div>


이런식으로 head와 foot는 공통적으로 쓰고 가운데 컨텐츠만 라우터에 따라 html을 바꾸도록 했습니다.
매 페이지마다 발동 되는 함수가 있습니다. 

예를 들어 매 페이지마다 pc와 mobile을 구분후 기기에 따라 라우터를 다르게 입장
mobile인데 pc화면으로 볼경우 강제적으로 mobile 화면으로 전환 이런식으로 매 페이지마다 동작을 시키는 함수 입니다.


angular를 쓰기전 node 에서 jade 형식으로  위와 마찬가지로 공통으로 쓰는 head와 foot는 같은 html 컨텐츠를 다른 html로 나눴었습니다.
그땐 SPA 개념이 아니기 때문에 매 페이지시 head와 foot html을 불러왔기 때문에 항상 head에 정의한 함수가 발동이 됬었습니다.


허나 angular로 head에 정의를 하니깐 첫 입장시만 발동하고 그뒤엔 가운데   
        <div ng-view=""></div> 만 바뀌기 때문에 불러오는 html에 정의한 함수만 발동이 되고 있습니다.


이 방식이라면 저는 head에 정의가 아니라 모든 html에 같은 함수를 정의해야 합니다ㅠ....
그렇다고 SPA를 포기하고 window.location 으로 매 페이지마다 로딩을 시킬수도 없습니다;;

이러한 현상을 해결할려면 어떻게 해야 할까요? 지금 당장은 모든 html에 같은 함수를 정의해서 동작은 시키고 있습니다.
나중에 구글 analytics 도 넣어야 하는데;; ( 이전까진 analytics도 head 에 한번만 정의 ) SPA라 이러한 문제점을 격을줄은 몰랐습니다;


지금또 제가 생각한 방법은 ng-view로 html을 부를때 컨트롤단을 2가지를 불르는 방법 입니다. 
만약  /aaa로 라우터 입장시  aaa.html 소환


<div ng-view></div> 영역이 aaa.html 소환

aaa.html

<div ng-controller="공통 함수 컨트롤">
// 아무것도 작성 하지 않고 컨트롤만 불른다
</div>

<div ng-controller="aaa관련 컨트롤">
//여기에 aaa.html내용 작성
</div>

이런식으로 그외에 다른 라우터일시 xxx.html에서도 마찬가지로
<div ng-controller="공통 함수 컨트롤">
// 아무것도 작성 하지 않고 컨트롤만 불른다
</div>
는 무조건 정의하게 되면 어느 페이지든지 공통 함수 컨트롤을 발동시키게 할까요?



다른 방법이 있다면 조언해 주시면 감사하겠습니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호