2012-03-14 24 views
6

Chcę utworzyć obiekt singleton w Ext JS 4.Singleton w ExtJs4

Oto mój kod:

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

    } 
}); 

nazywam go:

AM.model.Test.foo(); 

To wszystko działa poprawnie o ile umieściłem define w app.js. Kiedy próbuję przenieść tę definicję „app \ modelu \ Test.js” otrzymuję ten błąd:

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

Co jest nie tak z moim kodu?

Odpowiedz

5

Musisz skonfigurować dynamiczne ładowanie i wymagać, aby klasa z miejsca, w którym zamierzasz z niego korzystać.

Na przykład:

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

dziękuje! To pomogło. – mik