ST2: использование 2 уникальных экземпляров магазина и MVC - PullRequest
1 голос
/ 21 января 2012

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

Carousel:

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 («Магазин загружен»); выполняется, что я поместил в контроллере. Что я делаю не так?

1 Ответ

0 голосов
/ 10 февраля 2012

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

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

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

...