2014-06-17 2 views
0

양식과 탭 패널이 있습니다. 사용자가 양식에 정보를 입력하고 마지막에 제출 버튼을 클릭해야합니다. 버튼 클릭 이벤트를 제어하고 입력에 따라 다양한 애플리케이션 레벨 이벤트를 발생시키는 컨트롤러가 있습니다. 모든 탭의 컨트롤러에서 이러한 이벤트를 catch하고 개별 처리를 수행합니다. 무슨 일이 일어나는가는 모든 탭이 처음에 렌더링되지는 않으므로 첫 번째 탭만 출력을 표시하고 다른 탭은 오류를 표시합니다. 프로세스를 렌더링 한 다음 구성 요소를 기다리는 방식으로 이벤트를 잡을 수있는 방법이 있는지 알고 싶습니다.Extjs 4로 렌더링되지 않은 구성 요소에 이벤트를 추가합니까?

감사합니다. 대한을 yor inital 핸들러가 그 탭 !rendered에 대한 pendingJob 개체의 어떤 종류의 큐 다음 afterrender 또는 show 이벤트에 당신이 그것을 확인 과정을하고 취소하는 방법

+0

다른 탭에서 어떤 오류가 발생합니까? 그들의 의존성이 왜 렌더링에서 다른 탭을 연기하려고하는 이유는 무엇입니까? 탭에서 기대하는 출력의 종류는 무엇입니까? – Dev

+0

글쎄, 렌더링 자체를 연기하지는 않습니다. 그러나 나타나는 것처럼 다른 탭은 클릭하지 않는 한 렌더링되지 않습니다. 애플리케이션을 시작할 때 모두 렌더링하는 방법이 있습니까? –

답변

0

tabferel에 대해 deferredRender : Boolean 구성을 확인하십시오.

기본적으로으로 설정하면 탭이 활성화 될 때까지 하위 항목 렌더링이 브라우저 DOM에 지연됩니다. False는 레이아웃이 렌더링되는 즉시 모든 포함 된 항목을 렌더링합니다. 상당한 양의 콘텐츠가 있거나 많은 양의 무거운 컨트롤이 기본적으로 표시되지 않는 패널에 렌더링되는 경우이를 true로 설정하면 성능이 향상 될 수 있습니다.

+0

대단히 감사합니다. 시작 부분에 렌더링 할 필요가 없지만 지금은 내가 원하는 것을 성취 한 좋은 느낌 때문에 탭에 다른 것이 있기 때문에 뭔가 다른 것을해야 할 수도 있습니다. 고마워요. –

+0

다행, 도움이되었습니다 .--) – Dev

0

? 나는 카드 레이아웃과 비슷한 것을하고 아주 잘 작동합니다.

+0

예 그게 꼭 필요한 것입니다. 내가 생각한 것은 글로벌 불 변수를 생성하고 사용자가 무엇을 입력했는지 확인하는 것입니다. 그러나 그것은 옳은 길을 느끼지 못했습니다. 그게 좋은 아이디어라고 생각하니? 나는 사건을 일으키고 나중에 잡을 가능성이 있기를 바랬다. 또는 애프터 렌더에서 그것을 잡을 수도 있고, 물체의 렌더링이 강제로 일을 마칠 수도있다. 하지만 당신이 좋은 지적을 가지고 있다고 생각합니다. 아니면 그 방향으로 뭔가. 감사합니다 –

+0

전역 변수는 좋은 습관이 아닙니다. 그러나 그것은 악마가 아닙니다. MVC 로직을 깨뜨릴 필요가 없습니다. 1. 입력 된 화재 이벤트가 변경되었습니다. 관심있는 컨트롤러는 이벤트를 듣고 실행되면 표시/렌더링/준비 여부를 확인합니다. 예인 경우 업데이트하십시오. 그렇지 않다면 준비가되었을 때를 대비하여 더러운 것으로 표시하십시오. 그들이 언제 준비 될 것입니까? 나는'show' 이벤트 및/또는'afterrender'를 사용합니다. – adaskos

+0

예 후행을 사용할 것입니다. 고마워, 내가 결국이 같은 일을해야하지만 지금은 내가 deferrender를 false로 설정하고 응용 프로그램 시작시 모든 탭을 렌더링합니다. 성능 향상을 위해 일단 MVC의 기능을 잘 알고 있으면이 옵션을 사용합니다. 좋은 제안에 다시 한 번 감사드립니다. –