Necesito definir algunas funciones que puedo llamar a todas partes en mi aplicación. ¿Cuál es el mejor enfoque para lograr esto?¿Dónde debería definir las funciones globales en ExtJS 4 MVC?
23
A
Respuesta
47
Personalmente, para mantenerlo como EXT-MVC como sea posible, tengo una clase de utilidades llena de métodos estáticos. Esto puede ser requerido como cualquier otra clase para mantener relaciones de dependencia apropiadas. Esto también asegura que los métodos se ejecuten en un entorno EXT, por lo que todo EXT está disponible.
Ext.define('MyApp.Utilities', {
statics: {
foo: function (a, b) {
return a + b;
}
}
});
Ext.define('MyApp.MyView', {
extends: 'Ext.panel.Panel',
requires: ['MyApp.Utilities'],
initComponent: function() {
MyApp.Utilities.foo(1, 2);
}
});
4
Una forma alternativa diferente al enfoque estático de @David Kanarek es definir un singleton. Códigos:
Ext.define('MyApp.Utilities2', {
singleton: true,
global_var2: 'Hello World',
foo2: function (a, b) {
return a + b;
},
});
He creado un violín aquí: https://fiddle.sencha.com/#fiddle/qu1
La diferencia entre la estática y el enfoque Singleton es que
- MyApp.Utilities2 (enfoque Singleton) es un objeto,
- MyApp.Utilities (enfoque estático) es una clase.
Depende de usted si hacer referencia a la clase en sí o hacer referencia a una instancia de esa clase para mayor comodidad.
Cuestiones relacionadas
- 1. ¿Dónde deberían colocarse las funciones Symfony "globales"?
- 2. Cómo definir funciones globales en PHP
- 3. ¿Dónde debería poner las constantes globales en un programa C++?
- 4. En Code Igniter, ¿dónde debería declarar mis variables globales?
- 5. ¿Dónde debería definir mis plantillas de datos?
- 6. ¿Debería el espacio de nombres funciones globales en PHP?
- 7. Controlador de extensión en la aplicación ExtJS 4 MVC
- 8. Extjs 3 a Extjs 4
- 9. ¿Dónde definir las asignaciones de AutoMapper?
- 10. JS/restaurar las funciones globales por defecto
- 11. Dónde encaja la acción ExtJS en el patrón MVC
- 12. ExtJs 4 ... ¿Cómo extender los componentes de Extjs 4?
- 13. ¿Dónde debería definir mi NinjectModule y mis fábricas?
- 14. rutas relativas utilizando extjs 4
- 15. Modelo dinámico con ExtJS 4
- 16. Extjs 4 Grid findcolumn
- 17. ExtJS 4 code assist
- 18. Uso de más de un controlador con ExtJS 4 MVC
- 19. ExtJS ComboBox 4 Autocompletar
- 20. Definir oyentes en el controlador ExtJS
- 21. Definir funciones en estructuras
- 22. ¿Cómo usar Ext.define en ExtJS 4?
- 23. ¿Dónde debería poner funciones de utilidad comunes para las pruebas Perl .t?
- 24. ExtJS 4 Convenciones de nomenclatura
- 25. Dónde poner las variables globales en Rails 3
- 26. Componente Extjs dentro de Ext.XPlantilla en EXTJS 4
- 27. ¿Dónde debería colocar scriptmanager
- 28. Dónde debo ubicar las funciones compartidas de @helper en MVC Razor
- 29. ¿Dónde poner las funciones de conversión?
- 30. Dónde debería colocar helpers declarativos en ASP.NET MVC 3
¿Puede darnos un pequeño ejemplo de su idea? –
He agregado un código a mi respuesta, avíseme si ayuda. –
¿No debería la llamada 'Utilities.foo' ser' MyApp.Utilities.foo'? – JohnnyHK