2015-04-02 146 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,解決了這個問題。