내 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);
을 가하고, 가장 좋은 방법입니다, 메인 컨트롤러에? 나는 이것을 어떻게하는지 정말로 모른다.
나는이를 읽어 봤는데,하지만 난 그것을 생각하지 않는다 훨씬 도움 :
내 POV 당신이 렌더링 간단한 요소를 기다리고있어 단지 loadmasks를 사용하지 말아야합니다. 나는 Ajax 요청을하기 전에 그것들을 사용하고 요청이 성공하거나 실패 할 때 그들을 제거한다. –
내 앱이 더 전문적으로 보일 때도? 차라리 내 tabpanel의 스위치에서 1 초 동안로드하는 배경 이미지보다로드 마스크를 볼 것입니다 ... 해결책이 있습니까? 하나의 탭에 배경 이미지가로드됩니다. – Digeridoopoo
배경 이미지가 완전히로드되면 Sencha 이벤트가 실행되지 않습니다. –