각지다.JS: 동일한 컨트롤러를 공유하는 뷰, 뷰 변경 시 모델
Angular부터 시작할게요.JS.
동일한 컨트롤러를 공유하는 뷰가 여러 개 있습니다.각 뷰는 컨트롤러에 저장된 데이터를 수집하는 단계입니다.
$routeProvider.when('/', {
templateUrl: 'partials/text.html',
controller: 'itemSubmitter'
});
$routeProvider.when('/nextThing', {
templateUrl: 'partials/nextthing.html',
controller: 'itemSubmitter'
});
itemSubmitter 컨트롤러:
$scope.newitem = {
text: null
}
첫 번째 그림은 다음과 같습니다.
<textarea ng-model="newitem.text" placeholder="Enter some text"></textarea>
<p>Your text is:
{{ newitem.text }}</p>
이렇게 하면 'Your text is:' 단락을 실시간으로 업데이트할 수 있습니다.
그러나 다음 보기가 로드되면{{ newitem.text }}
는 기본값으로 리셋됩니다.컨트롤러 인스턴스에 저장된 값을 뷰 간에 유지하려면 어떻게 해야 합니까?
루트 변경 시 컨트롤러가 폐기됩니다.뷰 간에 데이터를 전송하는 컨트롤러에 의존하지 마십시오.그 데이터를 처리할 수 있는 서비스를 만드는 것이 가장 좋습니다.
컨트롤러를 올바르게 사용하는 방법에 대해서는, 각도의 문서를 참조해 주세요.http://docs.angularjs.org/guide/dev_guide.mvc.understanding_controller
문서에서 인용하려면:
컨트롤러의 올바른 사용방법
일반적으로 컨트롤러는 너무 많은 것을 시도하지 않는 것이 좋습니다.단일 뷰에 필요한 비즈니스 논리만 포함해야 합니다.
컨트롤러를 슬림하게 유지하는 가장 일반적인 방법은 컨트롤러에 속하지 않는 작업을 서비스로 캡슐화한 다음 종속성 주입을 통해 컨트롤러에서 이러한 서비스를 사용하는 것입니다.이에 대해서는 이 가이드의 '의존성 주입 서비스' 섹션에서 설명합니다.
컨트롤러는 다음 용도로 사용하지 마십시오.
- 임의의 종류의 DOM 조작:컨트롤러는 비즈니스 로직만 포함해야 합니다.응용 프로그램의 프레젠테이션 로직인 DOM 조작은 테스트하기 어려운 것으로 잘 알려져 있습니다.프레젠테이션 로직을 컨트롤러에 넣는 것은 비즈니스 로직의 테스트 가능성에 큰 영향을 미칩니다.Angular는 자동 DOM 조작을 위한 데이터 바인딩을 제공합니다.독자적인 수동 DOM 조작을 실행할 필요가 있는 경우는, 프레젠테이션 로직을 지시로 캡슐화합니다.
- 입력 형식 — 대신 각도 형식 컨트롤을 사용하십시오.
- 출력 필터링 - 대신 각도 필터를 사용합니다.
- 컨트롤러 간에 공유되는 상태 비저장 또는 상태 저장 코드를 실행하려면 각도 서비스를 대신 사용하십시오.
- 다른 컴포넌트의 라이프 사이클을 인스턴스화 또는 관리합니다(예를 들어 서비스인스턴스 작성).
언급URL : https://stackoverflow.com/questions/16210822/angular-js-views-sharing-same-controller-model-data-resets-when-changing-view
'your programing' 카테고리의 다른 글
node.js를 사용하여 JSON을 통한 루프 (0) | 2023.04.02 |
---|---|
SELECT 문에서 BOUAL 유형을 사용하는 방법 (0) | 2023.04.02 |
WooCommerce 함수에 WP/WC 인수 누락 (0) | 2023.04.02 |
지시 템플릿 내의 DOM 요소에 액세스하는 AngularJS (0) | 2023.04.02 |
resact.js로 렌더링한 후 페이지 맨 위로 스크롤합니다. (0) | 2023.04.02 |