2012-02-13 27 views

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); 
    } 
}); 
+0

¿Puede darnos un pequeño ejemplo de su idea? –

+0

He agregado un código a mi respuesta, avíseme si ayuda. –

+2

¿No debería la llamada 'Utilities.foo' ser' MyApp.Utilities.foo'? – JohnnyHK

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