如何使用hasOwnProperty方法获取itemId值以隐藏ext js中的选项卡

时间:2017-02-14 12:57:41

标签: javascript extjs

我尝试使用此代码隐藏标签:

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并隐藏此标签?

1 个答案:

答案 0 :(得分:0)

在容器中查找组件

要检索特定itemId的组件,您应该使用getComponent的{​​{1}}方法。它接受一个itemId作为它的参数并返回匹配的组件。

来自Sencha ExtJs 6.2.1 documentation

  

检查此容器的items属性并获取此容器的直接子组件。

所以你不需要对项目进行循环,只需调用函数即可。

Ext.container.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();