2017-08-09 44 views
0

我需要使用ext js和我有一个新手问题,我不知道如何读取Ext.define中的变量。分机js 6读取变量define

这是我的代码:

Ext.define('AutoPrenotazioni.view.riepilogo.Riepilogo', { 
    extend: 'Ext.tab.Panel', 
    xtype: 'app-main', 
    requires: [ 
     'Ext.MessageBox', 
     'Ext.layout.Fit' 
    ], 
    controller: 'main', 
    items: [ 
    { 
     title: 'Home', 
     layout: 'fit', 
     items: [{ 
      xtype: 'mainlist' 
     }] 
    },{ 
     title: 'Prenota Auto' 
    },{ 
     title: 'Auto Prenotate' 
    },{ 
     title: 'Gestisci Parco Auto', 
     hidden: function(){ 
      if(localStorage.getItem("Admin") == 'Si'){ 
      return false; 
      }else{ 
       return true; 
      } 
     } 
    } 
], 



listeners: { 
    activeitemchange: function(homepnl, value, oldValue){ 
     console.log(value.title); 
     return false; 
    } 
} 

}); 

主要问题:

hidden: function(){ 
    if(localStorage.getItem("Admin") == 'Si'){ 
     return false; 
    }else{ 
     return true; 
    } 
} 

这是行不通的(但如果我把隐藏:true或false它的工作原理)。

我尝试了一个全局变量,并试图在Ext.onReady中设置它,如果我在监听器的activeitemchange内部使用控制台日志,那么全局变量会得到正确的值。

回答

1

hidden期望一个布尔值,你正在分配一个返回布尔值的函数。我会尝试简单:

hidden: localStorage.getItem("Admin") !== 'Si' 
+0

谢谢你这是工作 – Mah

1
hidden: localStorage.getItem("Admin") != 'Si' 

;)

你做你分配一个功能到hidden属性,而不是它的结果(这意味着你只会得到的结果,如果你以某种方式被称为hidden())的方式。

+0

一个笑脸确实提供了一个很好的解释,虽然 –

+0

也谢谢你 – Mah