синглтон в ExtJs4 - PullRequest
       5

синглтон в ExtJs4

6 голосов
/ 14 марта 2012

Я хочу создать одноэлементный объект в Ext JS 4.

Вот мой код:

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

    }
});

Я звоню с:

AM.model.Test.foo();

Все работает нормально, пока я определяю файл app.js. Когда я пытаюсь переместить это определение в «app \ model \ Test.js», я получаю эту ошибку:

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

Что не так с моим кодом?

1 Ответ

5 голосов
/ 14 марта 2012

Вам необходимо настроить динамическую загрузку и указать класс, из которого вы собираетесь его использовать.

Например:

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();
});
...