条件加载视口中的项目

时间:2013-11-13 10:27:31

标签: javascript extjs

您好, 为了管理用户访问,我需要禁用加载一些项目,在视口中,我现在用“隐藏”属性隐藏它们,但是我无法阻止这些项目的后台处理,例如服务器请求

如何禁用特定项目的加载。

这是我的视口代码

var notAllowAdmin=true; //init access rule gere for admin panel

Ext.define('eFinances.view.Viewport', {
extend: 'Ext.container.Viewport',
requires: [
    'Ext.layout.container.Border'
],

layout: 'border',

items: [
    {
        xtype: 'eFinancesToolbar',
        region: 'north'
    },
    {

       title: 'Navigation',
       region: 'west',
       collapsible: true,
       split: true,
       width: 200,
       minWidth: 175,
       maxWidth: 400,
       animCollapse: true,
       margins: '0 0 0 5',
       layout: 'accordion',
       items: [{
              xtype:'menuTresorerie',
              title: 'Trésoreries',
              iconCls: 'balance' // see the HEAD section for style used


            },{

              xtype:'menuAchat',
              title: 'Achat et fournisseurs',
              iconCls: 'depense' // see the HEAD section for style used

            }, {
              xtype:'menuVente',
              title: 'Ventes et clients',
              iconCls: 'recette'
            }, {
              xtype:'menuAdmin',
              hidden :notAllowAdmin, // hide items if not allowed
              title: 'Administration',
              iconCls: 'administration'

            }]

    },
    {
        region: 'center',
        title: 'work area'
    }
 ]

});

目前我用管理面板隐藏了带有规则访问初始化的notAllowAdmin变量,但是执行了整个后台进程,有些可以告诉我如何继续完全停用面板加载或者让我最好的想法(管理用户访问权限)

问候

1 个答案:

答案 0 :(得分:2)

您可以停止向items数组添加隐藏组件。例如:

items: [
    {
        xtype:'menuTresorerie',
        title: 'Trésoreries',
        iconCls: 'balance' // see the HEAD section for style used
    },
    {
        xtype:'menuAchat',
        title: 'Achat et fournisseurs',
        iconCls: 'depense' // see the HEAD section for style used
    },
    {
        xtype:'menuVente',
        title: 'Ventes et clients',
        iconCls: 'recette'
    }
].concat(notAllowAdmin ? [] : [
    {
      xtype:'menuAdmin',
      title: 'Administration',
      iconCls: 'administration'
    }
]);

但是你应该注意到这应该仅作为优化进行处理,并且应该在服务器端实现真正的访问控制。