2012-03-14 23 views
6

Quiero crear un objeto único en Ext JS 4.Singleton en ExtJs4

Aquí está mi código:

Ext.define('AM.model.Test', { 
    extend : 'Ext.util.Observable', 
    singleton : true, 
    foo : function() { 
     console.log('log 1'); 
    }, 
    constructor : function() { 

    } 
}); 

lo llamo con:

AM.model.Test.foo(); 

Todo funciona bien siempre que coloque define en app.js. Cuando trato de mover esta definición para 'app \ modelo \ Test.js' me sale este error:

AM.model.Test is undefined [Break On This Error]
AM.model.Test.foo();

¿Qué hay de malo en mi código?

Respuesta

5

Debe configurar la carga dinámica y solicitar la clase desde la que desea utilizarla.

Por ejemplo:

Ext.Loader.setConfig({ 
    enabled: true, 
    paths: { 
     'AM': 'app' 
    } 
}); 

Ext.require('AM.model.Test'); 

Ext.onReady(function() { 
    // now all the required classes are loaded and you can start using them 
    AM.model.Test.foo(); 
}); 
+0

Gracias usted! Esto ayudó. – mik