Как удалить элементы из дерева
я попытался использовать этот пример и добавить базовый 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 в прокси-сервере и почему он не отправляет никаких сведений о том, что нужно удалить в заголовке запроса? Не было других примеров того, как я делал дерьмо с дерева, которое я мог найти.
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();