Как удалить элементы из дерева

я попытался использовать этот пример и добавить базовый CRUD в дерево.

http://dev.sencha.com/deploy/ext-4.0.0/examples/tree/treegrid.html

пока я просто хочу удалить элемент из дерева. Я добавил кнопку и имею это под щелчком мыши:

click : function() {;
    var record = tree.getSelectionModel().getSelection()[0];
    store.destroy(record);
    store.sync();
}

Я проверил, что запись и магазин существуют. Магазин имеет тип TreeStore, как в Примере. Если я проверю отправленный запрос, это просто []. Все, что у меня есть ... прокси на данный момент это:

var store = Ext.create('Ext.data.TreeStore', {
    storeId : 'treeStore',
    model : 'Task',
    proxy : {
        type : 'ajax',
        // the store will get the content from the .json file
        url : '../resources/data/treegrid.json'
    },
    folderSort : true
});

щелчок удалить не удаляет текущий выбранный элемент. Нужно ли мне настроить правильный URL-адрес destroy в прокси-сервере и почему он не отправляет никаких сведений о том, что нужно удалить в заголовке запроса? Не было других примеров того, как я делал дерьмо с дерева, которое я мог найти.

enter image description here


EDIT:

обратите внимание, что причина путаницы в использовании store.destroy(record) это было ВН.данные.Магазин метод remove(record) но ВН.данные.TreeStore нет. Кроме того, стенографический подход к уничтожению record.destroy(), а не record.remove(true).

обратите внимание, однако, что я получил ошибкиrecord.destroy() или record.remove(true). Предположительно, магазин должен сохранить узлы для отправки как JSON, поэтому используйте .

1 ответов


Tree store не имеет метода destroy. Поскольку запись сделана с дерева, она украшена буквой узел интерфейса. Поэтому используйте метод remove (с дополнительным destroy).

    var record = tree.getSelectionModel().getSelection()[0];
    record.remove(true);
    store.sync();