2016-10-05 7 views
0

마리오 넷 앱 (2.4.4)이 있습니다.마리오 네트의 여러 앱 레이아웃

현재 최상위 수준의 영역 (헤더, 탐색, 콘텐츠 등)이 많이 포함되어 있습니다.

이제 이러한 영역을 사용하지 않는 페이지를 추가해야합니다. 특정 페이지가 표시 될 때를 확인하고 영역을 숨기거나 표시 할 수있는 이벤트 부하를 연결할 수 있지만 여러 응용 프로그램 레이아웃을 정의하는 간단한 방법이 있는지 궁금해서 루트를로드 할 레이아웃을 정의해야합니까?

그래서 레이아웃 A에는 헤더, nav, 컨텐츠 및 레이아웃 B가 헤더와 내용 만 갖게됩니다.

일부 경로는 A를 사용하고 일부 경로는 B를 사용합니까?

답변

0

예. v2.x 응용 프로그램에는 여러 영역이 있습니다 .. 그래서 최상위 영역이 응용 프로그램에 정의되어 있다고 의심됩니다. v3 응용 프로그램에는 이제 단일 영역 만 있습니다 ..

단일 응용 프로그램 영역 .. 응용 프로그램을 레이아웃으로 사용하는 대신 내부에 최상위 레이아웃을 배치하십시오.

이 방법을 사용하면 경로별로 필요에 따라 레이아웃을 바꿀 수 있으며 업그레이드 할 수 있습니다.

+0

아하 .. 지금은 하위 모듈의 컨트롤러가보기를 표시하려고 할 때 App.main.show (View)를 호출하고 주 콘텐츠 영역 인 main이 호출됩니다. 그래서 우리가 최상위 레벨의 LayoutViews를 가지고 있다면 그것들을 인스턴스화 한 다음 컨트롤러에서 사용할 수있게 만들까요? 그리고 나서 컨트롤러는 어떻게 든 레이아웃 중 하나를 보여 주며 그 내부에 메인 뷰를 표시합니다. 내 우려는 각 하위 모듈이 최상위 레이아웃을 다시로드하는 경우 레이아웃 중 하나에서 탐색 항목의 상태를 다시 렌더링하거나 잃어 버리는 것입니다. –

+0

뷰에서 외부에 상태를 저장하여 다시 작성할 수 있도록 제안합니다. . 그러나 그것은 기본적으로'App.main.show (new MainLayout ({state : storedState})); '일 것입니다.보다 적은 옵션은 메인 영역의 레이아웃을 그대로 유지하는'preventDestroy' 일 것입니다. 그러나 그것은 이상적이지는 않습니다. . 이 시나리오에서는'main'이 Application의 유일한 영역 일 것이고 다른 영역도 그 부분이 될 것입니다. –