2012-01-21 3 views
1

У меня есть простое тестовое приложение, в котором у меня есть карусель, который будет создавать несколько объектов одного и того же типа сетки, причем каждая сетка имеет свою собственную копию магазина.ST2: Использование 2 уникальных экземпляров магазина и MVC

Карусель:

Ext.define('App.view.TopPageCarousel', { 
extend: 'Ext.Carousel', 
xtype : 'app-toppagecarousel', 
requires: ['Ext.Carousel', 'App.view.TopPageGrid'], 
config: { 
    title: 'Top Pages', 
    items: [{ 
     xtype : 'app-toppagegrid', 
     title : 'titleA' 
    },{ 
     xtype : 'app-toppagegrid', 
     title : 'titleB' 
    }] 
} 

});

Сначала я определял хранилище в сетке как свойство в его конфиге, и у меня есть контроллер, который прослушивает изменения в магазине, просто чтобы сообщить, что он загружается. Выполняется вызов ajax и заполняется сетка. Однако все сетки были заполнены теми же данными, хотя при каждом вызове возвращались уникальные данные.

Тогда я нашел пост, который сказал, что мне нужно, чтобы создать экземпляр магазины, как сетка заселяется, например, так:

constructor : function() { 
    var me = this; 
    Ext.apply(me, { 
     store : me.buildStore() 
    }); 
    me.callParent(arguments); 
    me.store.load({params : {ufq : this.title}}); 
}, 
buildStore : function() { 
    return Ext.create('App.store.Links'); 
} 

Этот вид работ. Выполняется вызов ajax, но сетка сейчас не заполняется, и я не вижу console.log («Store loaded»); выполняемый, который я разместил в контроллере. Что я делаю не так?

ответ

0

Оказывается, в ST2 вместо использования Ext.create, то лучше всего сделать это (в моем конкретном случае, а не в качестве стандарта):

constructor : function() { 
    this.callParent(arguments); 
    Ext.setStore('App.store.Links'); 
}, 

Использование Ext.getStore & Ext.setStore являются необходимо сейчас, если вы хотите получить много преимуществ, которые идут вместе с событиями & менеджером магазина.

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