지금까지 모든 질문 중 하나만 이미 질문을 받고 답을 얻었습니다. :) 그러나 모든 것이 언젠가 끝나기 때문에 여기에 내 첫 번째 질문이 있습니다.ExtJS : 컴포넌트가 Ext.TabPanel의 직계 하위 클래스인지 확인합니다.
오류 처리 목적으로 모든 흥미로운 구성 요소가 추가 될 때 일반 리스너를 첨부하려고합니다. 이것은 Ext.ComponentMgr.all.on('add', function (cnt, cmp) {})
으로 할 수 있습니다. 그런 다음 모든 유형의 구성 요소를 봅니다. 예를 들어 모든 버튼에 클릭 리스너를 추가하는 경우입니다.
지금해야 할 일은 tabpanel에 추가 된 모든 패널에 활성 수신기를 추가하는 것입니다. 내 문제는 : 구성 요소가 tabpanel의 직접적인 자손인지 확인하는 방법과 올바른 방법을 결정하는 방법에 대한 단서가 없습니다.
는 이미이 시도 :
나쁜 일이Ext.ComponentMgr.all.on('add', function (cnt, cmp) {
if (cmp.ownerCt != undefined && cmp.ownerCt.getXType() == 'tabpanel') {
console.log (cmp.getXType() + ' in tabpanel with id "' + cmp.getId());
}
});
, 일부 내선의 문서는 "ownerCt에 의존하지 마십시오"읽고 그것은 바로 내 구성 요소의 다른 모든이 ownerCt을 가지고 있지만 패널이 추가되지 때 늦은 시간에 탭 패널.
Ext.Panel.findParentByType()이 있지만 위의 모든 수준에서 컨테이너를 찾고 올바른 방법이라고 생각하지 않습니다 (-> 성능).
미리 답변 해 주셔서 감사합니다.
구성 요소를 만들 때마다 이러한 체조를해야한다는 의미이므로 매우 좋은 해결책은 아닙니다. 탭 패널 하위 클래스를 만들어 직접 처리하는 것이 훨씬 간단하고 명확합니다. –