2012-07-05 18 views
6

En Java y C++ podríamos almacenar una variable globalmente y acceder a su valor desde cualquier lugar del proyecto. Digamos, estoy dentro de una clase llamada Residence y estoy guardando el residenceNumber que es un INT a una variable global llamada houseNumberGlobalVariable.¿Hay variables globales en EXT JS

Ahora, podría acceder al houseNumberGlobalVariable desde cualquier clase en el proyecto. De manera similar, ¿existe una variable global en EXTJS que pueda usar?

Necesito establecer un valor de una clase y acceder a ella desde otra. ¿Cuál es el equivalente en EXT JS? No creo que exista un concepto de variable global en EXTJS, pero ¿cuál es el equivalente?

Respuesta

3

acaba de declarar una variable en app.js Actuará como variable global.

var globalVar; 

puede agregar nada en que al igual que

globalVar.myStore=yourStore; 
+0

Será fácil mantener todas las variables global2 en una clase. Entonces, ¿puedo incluso almacenar una "vista", una "tienda" usando el enfoque de @ sha? –

+1

sí, pero no lo intenté! generalmente agrego todo a la misma var. como globalVar.myView, globalVar.myCtl. No sé cuál es la clase que usa benfit aquí. – Jom

+0

¿Cómo accedo a 'store' que almacené en' globalvar.mystore'? ¿Es var accessstore = globalvar.mystore; ?? –

15

Crea una clase especial y coloca allí todas tus variables global.

Ext.define('MyApp.global.Vars', { 
    singleton: true, 
    .... 
    houseNumberGlobalVariable: undefined 

}); 

De esta manera si usted necesita el acceso a cualquier lugar en el código sólo tiene que utilizar MyApp.global.Vars.houseNumberGlobalVariable

+0

¿Dónde debería crear este archivo? en 'Ver'? –

+1

Aconsejo crear un archivo separado para la clase, o ponerlo dentro de 'app.js' principal. – sha

+1

Esta es la mejor manera de declarar variables globales con ExtJS. Lástima que no se configuró como Respuesta. –

2

En función de su aplicación se puede declarar la variable global.

Escenario 1: Declarar el interior de la configuración

Si se va a utilizar métodos de captador/definidor (es decir, cambiar la variable de frecuencia y luego ir por configuración basada)

Declarar los Appconstants

Ext.define('Practice.utilities.AppConstants', { 
     alias:'widget.AppConstants', 
     config:{ 
     mainVarTest : 'mainVarTest', 
     }, 
    testvar: 'Testing value', 
    foo: 'bar', 
    meh: 42, 
    constructor : function(options){ 
    this.initConfig(options); 
    } 
}); 

llamar a la variable

var AppConstants = Ext.widget("AppConstants"); 
console.log(AppConstants.getMainVarTest()); 

Escenario 2: Declarar el interior de la clase Singleton

Si la aplicación necesita variable global, pero que no será altera más dentro de la aplicación. Esta clase ayuda a cargar la variable constante solo una vez. (es decir, no vas a cambiar la variable). Este tipo es los juegos para su aplicación

Declarar

Ext.define('Practice.utilities.AppConstants', { 
      alias:'widget.AppConstants', 
      singleton : true, 
      testvar: 'Testing value', 
       foo: 'bar', 
       meh: 42, 
      }); 

Calling

var AppConstant=Practice.utilities.AppConstants; 
console.log(AppConstant.foo); 

Escenario 3: declarar como Estática

Estática es variable estática (exactamente igual como java).La ventaja de usar una variable estática es que el tiempo de vida de la variable es un período indefinido durante más tiempo hasta que se borre explícitamente.

Ext.define("Practice.utilities.AppConstants",{ 
     statics  : { 
     mainVarTest : 'mainVarTest' 
      }, 
     }); 
1

Me di cuenta de que lo que faltaba aquí era una solución del programa Sencha Architect sobre cómo crear una variable global.

Vaya al nodo "Aplicación" en el Inspector del proyecto. Luego haga clic en el cuadro Configs search/Filter, esto no es solo para buscar sino también para crear entradas de configuración. Cuando mire por primera vez este cuadro, tendrá un texto previamente rellenado de Smokey de Filter Configs....

Ingrese su nombre de variable global y notará no se encuentra nada en la siguiente lista, (si el valor se encuentra en la lista de configuración que ya dispone de esta variable o el uso de una palabra clave). A la derecha del cuadro de texto y el ícono de candado, está el botón "Agregar". Haga clic en el botón "Agregar" para agregar su variable global en la aplicación.

Digamos que hemos creado la variable Foo en este momento. Ahora verá una entrada en su lista de configuración. A la izquierda de esta entrada hay un botón de puntos suspensivos, actualmente se está designando que la nueva variable que creamos es una Cadena. Haga clic en el botón y cámbielo a algo diferente, como un campo 'Número'. Ingrese un valor para esta nueva variable y una vez que termine, tiene una variable global.

Entonces, ¿cómo accede a esta nueva variable creada? Aquí hay un ejemplo de código de relleno del global en una variable local para ser utilizado.

var bar= MyApp.app.Foo; 

referencia El 'MiApl' es el ajuste de configuración de aplicaciones name para la aplicación que se está creando. Puede encontrar este mismo valor en la configuración de configuración del nodo Aplicación filtrando en name.