컨트롤러를 한 번만 만들 수있는 방법을 조사했지만 정말 좋은 솔루션을 찾지 못했습니다.AngularJS 컨트롤러를 한 번만 만듭니다.
(A)는 일부 가 만 해결 방법 발견 :
- 여기에 생성 된 컨트롤러를 $ rootScope에 컨트롤러 목록을 작성하고 추가
- masterControllerScope에서 수집에 생성 된 모든 컨트롤러를 저장 masterController과 그 범위에 적용 할 솔루션을 만들
템플릿이로드되는 경우 특수 myService을 사용하여 컨트롤러를 agregate해야합니다. lso 서비스는 수표를해야합니다. 컨트롤러가 이미 생성 된 경우 - 이전 컨트롤러가로드 된 것이지 새로로드 된 컨트롤러가 아닌 경우 컨트롤러 컬렉션에 새로 추가해야합니다.
알고리즘은 단순한 것처럼 보이지만 각진을 사용하면 추악합니다. 나는 모서리가 약해져서 이것이 내가 더 나은 해결책을 찾지 못한 이유라고 생각한다.
더 좋은 아이디어 나 해결책을 제시해주세요. 더 설명을 추가 가능한 나는 이미 기본 라이브러리에서 구현해야 할 일이나 서비스를 재 설계해야합니다 ...
:
ng-app=singleApplication
|-ng-view
SingleApplication는 에 대한 템플릿을 관리 할 수 NG-경로있다 ng-view. 각 템플릿에는 고유 컨트롤러이 있습니다. 때마다 현재보기와 다른 적용, 나는 컨트롤러 생성을 참조하십시오. 하지만 템플릿을 한 번로드 한 경우 서버에 데이터를 요청하지 않아도됩니다. 이전 데이터, 테이블, 컨트롤을 가진 템플릿을 보여줘야하지만, 컨트롤러가 매번 생성되는 경우에는 그럴 수 없습니다. 모든 데이터는 컨트롤러 범위 (이), 모든 키가 컨트롤러 범위의 고유로드,하지만 난 $ 범위 또는 $ rootScope에 데이터를 저장하면 내가 좋은 보장이 없습니다. 모든 컨트롤러가 하나 개의 모듈에 작성하는 경우
아래의 예를 찾아주세요 그 모듈과 컨트롤러 수 있습니다 당신은 하나의 컨트롤러를 만들고 그것을 사용하려고 모듈 전체에서 맞습니까? –
성취하려는 것은 무엇입니까? 당신이 원하는대로 할 수있는 방법은 아마 –
입니다. 템플릿에 필터를 사용하거나 컨트롤러의 테이블에서 n 페이지로 이동하면 모든 데이터가 재설정됩니다 (템플릿 당 하나의 컨트롤러). 여분의 서버 요청으로. 따라서 컨트롤러를 한 번만 만들 수있는 능력이 필요하다고 생각합니다. – Sergii