обновить вложенный список в sencha touch 2 - PullRequest
1 голос
/ 11 марта 2012

У меня проблемы с перерисовкой моего вложенного списка с помощью sencha touch 2. Мой код выглядит примерно так:

  var data = {items:[{text:'hello', leaf:true}]};
    Ext.application({
       name:'main',
       launch:function(){

            Ext.define('ListItem', {
                extend: 'Ext.data.Model',
                config: {
                    fields: ['text']
                }
            });

            var treeStore = Ext.create('Ext.data.TreeStore', {
                id: 'mystore',
                model: 'ListItem',
                defaultRootProperty: 'items',
                root: data});

            Ext.create('Ext.NestedList', {
                id:'mylist',
                fullscreen: true,
                store: treeStore
            });

        } // end launch:function()
     }); // end Ext.application

Во время выполнения я изменяю переменную данных следующим образом: data.items[0].text = 'bye'. Как мне обновить и отобразить nestedlist bye? Я пробовал следующее, но ни один из них не работает:

var mystore = Ext.data.StoreManager.lookup('mystore');
mystore.setRoot(data);
Ext.getCmp('mylist').refresh(); // refresh, update, dolayout, repaint etc... does not exist.
Ext.getCmp('mylist').bindstore(mystore); // bindstore is deprecated

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

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

var record = treeStore.getAt(0);
record.set('text', 'bye');
1 голос
/ 30 мая 2012

Работа с данными в хранилище должна выполняться с использованием getById () и getAt (), которые возвращают Модели, которые реализуют NodeInterface. Добавьте данные через appendChild, а остальное самоочевидно оттуда. Значение идентификатора может быть переопределено в ваших данных, чтобы упростить навигацию по дереву.

getStore().getById('myFirstLevelId').getById('mySecondLevelId').getById('myThirdLevelId')

http://docs.sencha.com/touch/2-0/#!/api/Ext.data.NodeInterface

...