我尝试使用此代码来隐藏选项卡:
hideTab: function() {
var dashboard_obj = Ext.ComponentQuery.query('sellax-navigation-panel');
var tabBarObj = dashboard_obj[0].down('tabpanel').getTabBar();
var tabsArray = tabBarObj.items;
for(var tabBarObjItems = 0; tabBarObjItems < tabsArray.length; tabBarObjItems++)
{
var tabObj = tabsArray.get(tabBarObjItems);
if(tabObj.card.id == "tabSettings")
{
var tabObj_list = Ext.ComponentQuery.query('sellax-navigation-sub[id=settingsSubNav]');
var tabBarObj_list = tabObj_list[0].getTabBar();
var tabsArray_list = tabBarObj_list.items;
for(var tabSubBarObjItems = 0; tabSubBarObjItems < tabsArray_list.length; tabSubBarObjItems++)
{
if(tabsArray_list_item.id == "tab-1334")
{
tabsArray_list_item.hide();
}
但是控制台值不正确,那么如何隐藏该选项卡?
我的代码:
var tabsArray_list = tabBarObj_list.items;
for(var tabSubBarObjItems = 0; tabSubBarObjItems < tabsArray_list.length; tabSubBarObjItems++)
{
var tabsArray_list_item = tabsArray_list.get(tabSubBarObjItems);
if (tabsArray_list_item.hasOwnProperty('itemId'))
{
value = tabsArray_list_item['itemId'];
if (value == 'tabdeptsList')
{
tabsArray_list_item.hide();
}
}
代码没有抛出错误,但选项卡没有隐藏。
如何获取该面板的ItemId并隐藏该选项卡?
最佳答案
在容器中查找组件
要检索特定 itemId
的组件,您应该使用 Ext.container.Container
的 getComponent
方法。它接受 itemId 作为参数并返回匹配的组件。
来自Sencha ExtJs 6.2.1 documentation :
Examines this container's items property and gets a direct child component of this container.
所以你不需要太多循环遍历项目,只需调用该函数即可。
var tabsArray_list = tabBarObj_list.getComponent('tabdeptsList');
隐藏选项卡
要隐藏关联的选项卡,您可以使用组件的 tab
属性。
var tab = tabsArray_list.tab; // Each component has a reference to it's tab
tab.hide();
完整代码
var tabsArray_list = tabBarObj_list.getComponent('tabdeptsList');
var tab = tabsArray_list.tab;
tab.hide();
关于javascript - 如何使用 hasOwnProperty 方法获取 itemId 值来隐藏 ext js 中的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42226819/