2011-02-16 3 views
0

Je le code suivantHiding un élément de menu système 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 
    ]); 

et je veux cacher la « Importer » item.I ont été à l'API pour la version 3.3.0 et il n'y a pas de méthode cacher pour la classe Ext.air.SystemMenu.Comment devrais-je le cacher?

Répondre

1

donner votre bouton de menu Importer un 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(); 
     }); 
    } 
} 

Dans le code source il existe une méthode pour visbility (qui désactive simplement le bouton):

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

il vous suffit d'appeler cette méthode sur le bouton:

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

On dirait qu'il ne fournit pas une méthode pour le cacher complètement, s La méthode setVisible ne le désactive que

+0

dans l'API j'ai trouvé cette méthode désactiver: vrai ou faux – Gandalf

+0

ouais, vous pouvez utiliser cette option de configuration sur un bouton pour rendre le bouton désactivé, mais si vous voulez le changer après qu'il a été rendu, utilisez le code ci-dessus – JamesHalsall

Questions connexes