2015-04-02 4 views
0

У меня есть панель в пользовательском интерфейсе под названием Код, я не хочу отображать эту панель конкретным пользователям при входе в систему на основе их ролей. Я новичок в 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

Я решил проблему с помощью атрибута для панели под названием инвалидов и установить его в действительности.