到目前为止,我的每一个问题都已经在这里被问及并得到了回答,非常感谢我已经来到这里的所有时间机器的帮助。:) 但总有一天一切都会结束,所以这是我自己的第一个问题:
出于错误处理的目的,我尝试在添加所有有趣的组件时将一些通用侦听器附加到它们。这可以通过Ext.ComponentMgr.all.on('add', function (cnt, cmp) {})
. 然后我看看它是什么类型的组件,例如为每个按钮添加一个点击监听器。
我现在需要做的是为每个添加到选项卡面板的面板添加一个激活侦听器。我的问题是:我不知道如何确定组件是否是选项卡面板的直接后代以及如何以正确的方式进行操作。
我已经尝试过了:
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 ());
}
});
坏事是,一些 Ext 文档显示“不要依赖 ownerCt”,这是正确的:我的每个其他组件都有一个 ownerCt,但当晚添加到选项卡面板时没有面板。
我知道有 Ext.Panel.findParentByType(),但这会在上面的任何级别找到容器,我认为这不是正确的方法(-> 性能)。
提前感谢您的每一个答案!