2011-02-16 94 views
0

系統菜單項,我有以下代碼隱藏在ExtJS的

var menus = Ext.air.SystemMenu; 

    menus.add('File', [ 
     actions.newTask, 
     actions.newList, 
     actions.newFolder, 
     '-',{ 
      text:'Import...', 
      handler: function(){ 
       var importer = new tx.Importer(); 
       importer.doImport(function(){ 
        tx.data.lists.load(); 
        root.reload(); 
        loadList('root'); 
        Ext.Msg.hide(); 
       }); 
      } 
     },{ 
      text:'Export...', 
      handler: function(){ 
       new tx.Exporter(); 
      } 
     }, 
     '-', 
     actions.quit 
    ]); 

,我想隱藏「導入」 item.I一直以API爲3.3.0版本,並沒有隱藏方法Ext.air.SystemMenu類。如何隱藏它?

回答

1

給你導入菜單按鈕的ID:

{ 
    text:'Import...', 
    id: 'importBtn', 
    handler: function(){ 
     var importer = new tx.Importer(); 
     importer.doImport(function(){ 
      tx.data.lists.load(); 
      root.reload(); 
      loadList('root'); 
      Ext.Msg.hide(); 
     }); 
    } 
} 

在源代碼中存在對visbility的方法(這只是禁用按鈕):

setVisible : function(v){ 
    // could not find way to hide in air so disable? 
    nativeItem.enabled = !v; 
}, 

所以,你只需要調用此按鈕上的方法:

Ext.getCmp('importBtn').setVisible(false); 

看起來像它沒有提供完全隱藏它的方法,但setVisible方法只會禁用它。

+0

在api中,我發現這種方法禁用:true或false – Gandalf 2011-02-16 15:13:35