Как читать встроенные данные, записанные в магазине, с контроллера в Sencha Touch 2.0 mvc - PullRequest
0 голосов
/ 15 ноября 2011

Я узнаю о Сенче, поэтому у меня очень простой вопрос.Я пытаюсь создать простое приложение mvc с контроллером, моделью представления и хранилищем.

У меня есть эта модель

Ext.define('rpc.model.Studenti', {
Extend: 'Ext.data.Model',
fields: [
    { name: 'cognome', type: 'string' },
    { name: 'previsione', type: 'string' }
]
});

это хранилище (со встроенными данными)

Ext.define('rpc.store.Studenti', {
model: 'rpc.model.Studenti',
storeId: 'gruppoStore',
autoLoad: true,
data: [
    {cognome: 'uno', previsione: 'aaa'},
    {cognome: 'due', previsione: 'bbb'},
    {cognome: 'tre', previsione: 'ccc'}
]
});

контроллер

Ext.define('rpc.controller.Home', {
extend: 'Ext.app.Controller',
stores: ['Studenti'],
models: ['Studenti'],
views: ['home.Fila','home.Griglia','home.Previsio'],
store: 'gruppoStore',
init: function() {
    this.control({
        'griglia button': {
            tap: this.faqualcosa
        }
    });
},
faqualcosa: function(button){
    ...
    var gruppoStoreMgr=this.getStudentiStore();

    alert (gruppoStoreMgr.count());
    for (var key in gruppoStoreMgr) {           
        //alert (key);
    }
    alert (gruppoStoreMgr.storeId);
    alert (gruppoStoreMgr.isInstance);
    //alert (gruppoStoreMgr.data);
    alert (gruppoStoreMgr.autoLoad);
    for (var key in gruppoStoreMgr.data[0]) {
        //alert ("0"+key);
    }
    for (var key in gruppoStoreMgr.data[1]) {
        //alert ("1"+key);
    }
}
});

Пожалуйста, каков верный способ доступа в функцию faqualcosa к хранилищу данных?Мне удалось получить что-то вроде экземпляра (конечно, очень близкого ...) модели с var gruppoStoreMgr = this.getStudentiStore ();но у меня нет никаких следов данных, которые я написал в магазине ("uno", "due" ....).Как получить эти данные?Как иметь в контроллере функцию объекта, который ссылается на реальные данные в хранилище?

1 Ответ

2 голосов
/ 16 ноября 2011
this.getStudentiStore().data.items

Это самый прямой способ получить данные. Возвращает массив записей модели. Если это то, что вы ищете.

for(var i = 0; i < this.geStudentiStore().getCount(); i++ ) {
   var record = this.getStudentiStore().getAt(i)
   console.log(record.get('cognome'));
}

Это должно распечатать все "когномы"

...