2012-08-07 7 views
0

내 tabpanel 기반 응용 프로그램은 거의 끝났지 만, 내 tabpanel의 각 탭에 나타나는 전역로드 마스크를 추가하여 개선하고 싶습니다. 특정 탭의 내용이 렌더링 된 후에 사라집니다.Sencha Tabpanel 용 메인 컨트롤러에 글로벌로드 마스크를 추가하는 방법은 무엇입니까?

내가 듣고 있어야 할 것이지만, 내가 activeitemchange에서 loadmask를 활성화해야합니까? 그렇다면 글로벌 페인트 이벤트를 사용하여 마스크를 해제해야합니까? 필자는이 작업을 수행하는 가장 효율적인 방법이 주 컨트롤러에 있다고 가정하고 있습니다. 예를 들어 여러 가지 리스너를 사용하는 대신 한 번만 수행하면됩니다. 이것은 작동하는 것 같다 내가 탭 항목을 클릭에 loadmask를 얻을 수 있지만, 내가 그린 이벤트에 마스크를 해제하는 방법을 잘 모르겠어요 :

Ext.define('TCApp.controller.Main', { 
extend: 'Ext.app.Controller', 

config: { 
refs: { 
    tabpanel: 'tabpanel' 
}, 
control: { 
    tabpanel: { 
    activeitemchange: 'onActiveItemChange' 
        } 
     } 
}, 
onActiveItemChange: function (self, newItem) { 
    Ext.Viewport.setMasked({ xtype: 'loadmask', message: 'Loading...', indicator:true}); 
    console.log('Activeitemchanged'); 
} 
}); 

이가 그린 이벤트에 Ext.Viewport.setMasked(false);을 가하고, 가장 좋은 방법입니다, 메인 컨트롤러에? 나는 이것을 어떻게하는지 정말로 모른다.

나는이를 읽어 봤는데,하지만 난 그것을 생각하지 않는다 훨씬 도움 :

http://senchaexamples.com/2012/03/05/determining-when-the-active-item-changes-on-an-ext-tabpanel-container-in-sencha-touch-2/

+0

내 POV 당신이 렌더링 간단한 요소를 기다리고있어 단지 loadmasks를 사용하지 말아야합니다. 나는 Ajax 요청을하기 전에 그것들을 사용하고 요청이 성공하거나 실패 할 때 그들을 제거한다. –

+0

내 앱이 더 전문적으로 보일 때도? 차라리 내 tabpanel의 스위치에서 1 초 동안로드하는 배경 이미지보다로드 마스크를 볼 것입니다 ... 해결책이 있습니까? 하나의 탭에 배경 이미지가로드됩니다. – Digeridoopoo

+0

배경 이미지가 완전히로드되면 Sencha 이벤트가 실행되지 않습니다. –

답변

1

나는 당신이 그 탭 패널의 활성 항목을 변경할 때 그 모르겠어요 'painted'이벤트를 트리거합니다 (테스트 할 수 있습니다). 내 머리 꼭대기에서 (이 테스트하지 않은) 당신은 몇 가지 옵션이 있습니다. 탭 패널에 대한 컨트롤 구성에서 '활성화'이벤트를 추가 할 수 있습니다. 문서에 따라 컨테이너 내의 항목이 활성화 될 때이 이벤트가 발생합니다. 그래도 문제가 해결되지 않으면

, 당신은 당신 onActiveItemChange 기능이 뭔가를 시도 할 수 있습니다 :

onActiveItemChange: function (self, newItem) { 
    Ext.Viewport.setMasked({ xtype: 'loadmask', message: 'Loading...', indicator:true}); 
    console.log('Activeitemchanged'); 
    newItem.on('painted', this.hideMask, this); 
    //might need to try newItem.element.on('painted', this.hideMask, this); 
}, 
hideMask: function() { 
    Ext.Viewport.setMasked(false); 
} 
+0

응답 해 주셔서 감사합니다. 작동하지 못했습니다. newItem.ons 중 하나를 시도해 보니 곧바로 사라졌고 시도한 다른 줄은 화면에 머물렀다. 하지만 답장을 보내 주셔서 감사합니다 .... 다른 아이디어? – Digeridoopoo

+0

그게 올바른 방향에 관한 것이어야합니다 ... 작업 코드의 zip 샘플을 게시 할 수 있다면 문제를 확인하거나 GIT에 넣을 수 있습니다. –