2014-03-19 2 views
1

3 페이지짜리 마법사 설정 앱을 만들고 있습니다. 각 페이지에는 동일한 MasterController가 있지만 HTML 템플릿이 다릅니다. 각 html 템플릿에는 ControllerOne, ControllerTwo 및 ControllerThree와 같이 다른 컨트롤러가 있습니다.각도 데이터를 저장하고 저장하는 위치에 대한 조언

MasterController를 통해 데이터를로드 했으므로 마지막 페이지에서 저장 & 단계가 완료 될 때까지 사용자가 임시로 저장하는 데이터 및 변경 사항을 원합니다. 문제는 사용자가 페이지를 통과 할 때마다 MasterController가 호출되고 매번 데이터를 가져와 사용자의 변경 사항을 덮어 쓸 때마다 호출됩니다.

이 데이터를 서비스 또는 rootScope에 첨부하는 방법에 대해 생각해 보았지만 데이터 초기화가 여전히 MasterController에서 발생하므로 각보기가로드 될 때 데이터를 덮어 쓰게됩니다.

이 기능을 만들거나이 기능을 지원하도록 내 애플리케이션을 구조 조정해야하는 방법에 대한 조언이 있으십니까?

편집 :

서비스 문제에 대해 명확해야합니다. 어디에서 초기화 할 지 모르겠습니다. 만약 내가 컨트롤러 1,2 또는 3에서 내 데이터를 볼 때마다 다시 작동하지 않습니다 변경 사항을 다시 초기화됩니다. 내 HTTP 요청을 만들기 위해 필요한 ID를 얻으려면 MasterController에 도착해야하기 때문에 app.run()에서이 작업을 수행 할 수 없습니다. 각 페이지 스위치에서 호출되기 때문에 MasterController에서이 작업을 수행 할 수 없습니다.

내부 뷰만 변경되도록 뷰 내에서보기가 이상적입니다. 그러나 angular는 중첩 된 뷰를 지원하지 않으므로 angleUI를 사용하지 않고이 방법을 찾으려고합니다.

+0

서비스 또는 로컬 저장소 –

+1

데이터 초기화 코드를 서비스로 옮기고 거기에 데이터를 저장하기 만하면 $ http를 사용하는 메서드를 정의하여 서비스에서 궁극적으로 데이터를 보내고 컨트롤러에 삽입하면됩니다. 적절한 곳에 전화하십시오. http://plnkr.co/edit/ABQsAxz1bNi34ehmPRsF?p=preview. – shaunhusain

답변

0

각 페이지마다 서버에서로드되는 데이터를 변경하고 사용자 데이터를 덮어 쓰려면 각로드시 사용자 데이터로 서버 데이터를 확장하기 위해 "확장"기능 (예 : jQuery 's)을 사용했습니다. 페이지 변경은 데이터를 저장하기 위해 임시 데이터를 저장하는 서비스를 호출하고 최종 "저장 및 완료"버튼은 서비스의 데이터를 서버로 푸시합니다.

관련 문제