2013-11-13 2 views
0

Я создаю простой магазин в CoffeeScript, но он возвращается как неопределенным, когда я называю его в браузере консоли Ext.getStore('visitors')ExtJS 4 магазина не определен

Ext.define 'heroico.store.Visitors', 
    extend: 'Ext.data.Store' 
    model: 'heroico.model.Visitor' 
    storeId: 'visitors' 

Если я создаю его без фактического расширения 'Ext.data.Store' я могу найти его через getStore метод, но тогда я не могу загрузить его в мой контроллер в stores массиве:

Ext.create 'Ext.data.Store', 
    model: 'heroico.model.Visitor' 
    storeId: 'visitors' 

Любая идея, почему он будет вести себя таким образом?

ответ

3

Контроллеры автоматически инициализируют магазины. Если у вас есть в массиве магазинов вашего контроллера и он не загружается, убедитесь, что ваш контроллер загружается, указав его в массиве контроллеров в Application.js. Также убедитесь, что вы правильно указываете его в своем массиве магазинов, вы не опубликовали этот код. Проверьте наличие ошибок в консоли.

+1

Я не знаю, почему это произошло, потому что оно содержит решение. Мой контроллер, загружающий магазины, не упоминался в «контроллерах» приложения. –

0

Использование Ext.define определяет класс, оно не создает экземпляр этого класса. Поэтому, когда вы звоните Ext.getStore, он возвращает null.

После определения вашего магазина обязательно позвоните Ext.create('heroico.store.Visitors') где-нибудь, чтобы фактически создать экземпляр, тогда Ext.getStore должен работать.

Смежные вопросы