En mi proyecto actual, estoy utilizando ExtJs3.3.
He creado muchas clases que tenían variables privadas y funciones. Por ejemplo:Funciones privadas y variables ExtJs4?
MyPanel = function(config){
config = config || {};
var bar = 'bar';//private variable
function getBar(){//public function
return bar;
}
function foo(){
//private function
}
Ext.apply(config, {
title: 'Panel',
layout: 'border',
id: 'myPanel',
closable: 'true',
items: []
});
MyPanel.superclass.constructor.call(this, config);
};
Ext.extend(MyPanel , Ext.Panel, {
bar: getBar
});
Ext.reg('MyPanel', MyPanel);
entiendo que la nueva forma de hacer las cosas en ExtJs4 es utilizar el método Ext.define
. Así como mi pieza de código anterior sería algo como esto:
Ext.define('MyPanel', {
extend: 'Ext.panel.Panel',
title: 'Panel',
layout: 'border',
closable: true,
constructor: function(config) {
this.callParent(arguments);
},
});
Así que lo que quiero saber es cómo puedo definir variables privadas y funciones en ExtJs4 similares a la forma en que lo he hecho en ExtJs3?
En otras palabras, entiendo que el método Ext.define
se encargará de definir, extender y registrar mi nueva clase, pero ¿dónde debo declarar javascript var
que no son propiedades de la clase pero son necesarias para la clase.
MyPanel = function(config){
//In my Ext3.3 examples I was able to declare any javascript functions and vars here.
//In what way should I accomplish this in ExtJs4.
var store = new Ext.data.Store();
function foo(){
}
MyPanel.superclass.constructor.call(this, config);
};
¿Puede ampliar esta @ Rob? No recibo mucho apoyo en [los foros de Sencha] (http://www.sencha.com/forum/showthread.php?245130-Understanding-Ext-JS-4). Espero encontrar algo similar a mi implementación (ver la actualización de la pregunta realizada el 2012-05-31) -> http://stackoverflow.com/questions/9104387/extjs-javascript-module-design-pattern-best-practices – blong
Hola, estoy de acuerdo con el comentario a continuación de que el uso del objeto de configuración sería lo que desea al usar ExtJS 4 o Sencha Touch 2. La configuración crea variables internas y un getter y setter automáticamente. Los llamo "variables internas" porque no son exactamente "privados". Al excavar en el objeto podrá cambiarlos, pero debe esforzarse :) Cuando esté creando cualquier aplicación compleja, le recomendaría ENCARECIDAMENTE utilizar la estructura de Sencha MVC en lugar de las definiciones manuales para la mantenibilidad. Buena suerte –
¿qué tal algo así: http://stackoverflow.com/a/6023603/320399. Estoy intentando adaptar 'Ext.define' para darme funciones privadas compartidas entre instancias y variables de miembros privados exclusivas de las instancias. – blong