2015-04-02 122 views
0

我在用户界面中有一个名为Code的面板,我不想在他们根据角色登录时向特定用户显示该面板。我是ExtJS的新手。我有阻止用户的算法/条件,但我不确定在此代码中应用它的位置。该.js文件是:在ExtJS中显示/隐藏面板

analysisCodePanel = new Ext.Panel({ 
    id : 'analysisCodePanel', 
    title : 'Code', 
    region : 'center', 
    split : true, 
    height : 90, 
    layout : 'fit', 
    listeners : 
    { 
     activate : function(p) { 
      GLOBAL.IDs[1] = null; 
      GLOBAL.IDs[2] = null; 

      p.body.mask("Loading...", 'mask-loading'); 
      runAll(Data, p);} 
      return; 
     }, 
     deactivate: function(){ 
    }, 
    collapsible : true      
}); 

我的条件是检查用户是否是管理员,所以我可以做GLOBAL.IsCodeAdmin()然后显示在上面的面板从其他登录的用户隐藏

回答

0

如果这个面板是一个孩子。的视口,那么你必须使用你的控制器来显示和隐藏面板。

在您的控制器中,将视口渲染的监听器放置如下。确保您阅读文档并仔细入门。然后我会理解如何使用不同的事件来控制元素。此链接是一个好的开始http://docs.sencha.com/extjs/4.2.1/#!/guide/getting_started

// ExtJs controller 
Ext.define('app.controller.ViewPortController', { 
     extend: 'Ext.app.Controller', 
     refs: [ 
      { 
       ref: 'myPanel', // this elemenet can be referred as getMyPanel() 
       selector: 'panel[id=analysisCodePanel]' // selector to get panel reference 
      } 
     ], 
     init: function() { 
      this.control({ 
       'viewport': { 
        'render': this.viewPortRender // on viewport render this function will be called 
       } 
      }) 
     }, 
     viewPortRender: function() { 
      if (GLOBAL.IsCodeAdmin()) { 
       this.getMyPanel().show();  // show panel 
      } else { 
       this.getMyPanel().hide();  // hide panel 
      } 
     } 
    } 
); 
0

我使用被称为停用面板属性,并将其设置为true,解决了这个问题。