Регистрация магазина JSONm в Sencha Touch - PullRequest
1 голос
/ 21 ноября 2011

Я новичок в разработке приложений Sencha Touch. Я пытаюсь загрузить некоторые данные с удаленного сервера в список. Я создал магазин, как показано ниже

Ext.regStore('customers',{

model : 'customer',
sorters : 'firstName',
storeId : 'customers',
data : [{
    id : 100,
    firstName : 'aaa'
}, {
    id : 101,
    firstName : 'sss'
}, {
    id : 102,
    firstName : 'rrrr'
}]

});

Теперь мне нужно изменить этот магазин, чтобы получать данные с внешнего сервера. Следующее - это код, который я сейчас использую

var customers = new Ext.data.JsonStore({
        model : 'customer',

           proxy : {
            type : 'ajax',
            url:'http:sample.com',

            reader : {
                type : 'json',
                root : '',
            },                              
        },

        listeners : {

            datachanged : function() {

                customers.each(function(r) {
                    console.log('data in record is:'+ r.get('name'));
                });
            }
        },
    });

Теперь я сомневаюсь, что как зарегистрировать это хранилище JSON, например, исходный код, для доступа к хранилищу из другого файла viewcontroller.

Заранее спасибо

1 Ответ

0 голосов
/ 21 ноября 2011

Вы можете использовать свойство:

storeId = "NameOfStoryID"

После заполнения магазина вы можете, позже в своем коде, использовать этот storeId для доступахранилище (получите данные, обновите его и т. д.).

Пример:

    var schouwLijstStore = new Ext.data.Store({

        model: "schouwLijst",
        storeId: "myStore",
        proxy: {
            type: 'ajax',
            url: 'php/json.php?t=list',
            reader: {
                type: 'json',
                root: 'list'
            },   
        },    
        autoLoad: true,
        listeners: {
            load: function() {

                               // Do things on load (sync to offline store for example)

            }

        }

    });

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

// Load myStore.load ();

// Добавить элемент myStore.add ({id: *, значение: *});

и т. Д.

...