2012-03-14 13 views
6

voglio creare un oggetto Singleton in Ext JS 4.Singleton in ExtJs4

Ecco il mio codice:

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

    } 
}); 

Io lo chiamo con:

AM.model.Test.foo(); 

Funziona tutto bene finché definisco la posizione in app.js. Quando provo a spostare questa definizione a '\ modello app \ test.js' ottengo questo errore:

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

Cosa c'è di sbagliato con il mio codice?

risposta

5

È necessario impostare il caricamento dinamico e richiedere la classe da cui si intende utilizzarlo.

Ad esempio:

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

vi ringrazia! Questo ha aiutato. – mik