페이지에 배열 된 항목이있는 프로젝트에서 작업하고 있습니다. 이 페이지의 각 항목을 클릭하면 별도의 컨트롤러 및 다른보기로 연결되는 단추가있는 모달이 열립니다.Angularjs, IonicFramework - 모달로 되돌아 가기위한 옵션
사용자가로드 된 페이지에서 뒤로 버튼을 누르면 사용자가 배열 페이지로 이동합니다. 그래서 사용자가 클릭 할 때, 원래의 모달 오버레이 모달로로드 된 페이지를 선회
: 나는 모달보기로 이어질하기 위해 뒤로 버튼의 누름을 요구하고, 나는 몇 가지 옵션을 갔다 버튼을 누르면 원래의 모달을 그대로 둔 채 열립니다.
$ state.go()를 사용하기 위해 상태를 변경하기 위해 뒤로 버튼을 반복합니다. 이것은 각 컨트롤러에 있어야합니다.
$ rootScope.viewHistory로 변조하면 가장 해킹 된 옵션입니다. 그러면 이전 상태를 읽고 직접 편집하여 뒤로 버튼이 다른 곳으로 이동하게합니다.
state와 stateParameters의 두 매개 변수를 전달할 수있는 $ rootScope에 뒤로 버튼 기능이 있습니다. 이것은 아무것도 전달되었는지 확인하고 이에 따라 상태를 변경합니다. 아무 것도 전달되지 않으면 일반 뒤로 버튼 기능을 사용합니다.
장단점
(1) 모달로이 페이지를 선회의 주된 문제는 페이지를 복제 필요로한다는 것입니다, 이것은 그렇게 두 개의 컨트롤러 내에서 할 필요에 기인한다 우리는 아이템 목록 페이지에서 데이터를 잃지 않을 것이며 자체 컨트롤러 내에서 메뉴를 통해 액세스 할 수 있어야합니다. 이것이 유용 할 수있는 이유는 다른 페이지가 이런 식으로 작업해야한다는 사실입니다.
(2) 뒤로 버튼을 적용 할 때의 주요 문제점은 뒤로 버튼이 현재 다른 모든 상태에 대한 추상 부모 상태 인 메뉴의 한 페이지에만 위치한다는 것입니다. 이는 페이지 단위로 기능을 변경하기 위해 각 페이지 위로 뒤로 버튼을 가져와야 함을 의미 할 수 있습니다. 이것은 또한 함수 내에서 슬라이딩 방향을 호출하는 방법을 알지 못하기 때문에 상태를 변경할 때 페이지가 어떻게 움직이는 지 엉망으로 만들 수 있습니다.
(3)이 합리적으로 쉽게 보일 수있을 것입니다하지만이 작업을하고 정말 해키 느낌 만약 내가 단서가 없다
(4) 우리는 우리가 필요 뒤로 버튼 달러 (A $)의 rootScope 기능을 가지고 있다면 먼저 이것을 호출했는지, 지금 시점에서 하나의 컨트롤러가 다른 컨트롤러보다 먼저 호출되었지만 푸시 알림을 통합하면이 컨트롤러가 모두 변경 될 수 있습니다.
무엇이 최선의 해결책으로 간주 될까요? $ rootScope 기반의 뒤로 버튼을로드하는 마스터 컨트롤러에서 재 작업해야합니까 (가능합니까?)? 원래 컨트롤러에 데이터를 유지하면서 다른 컨트롤러에서 모달을로드하는 방법이 있습니까? 최선의 선택은 무엇입니까?