Podjęto próbę użycia tego przykładu i dodania podstawowego CRUD do drzewa.Jak usunąć elementy z drzewa
http://dev.sencha.com/deploy/ext-4.0.0/examples/tree/treegrid.html
Na razie, po prostu chcę, aby usunąć element z drzewa. Dodałem przycisk i kliknę go:
click : function() {;
var record = tree.getSelectionModel().getSelection()[0];
store.destroy(record);
store.sync();
}
Sprawdziłem, czy istnieje zapis i sklep. Magazyn jest typu TreeStore, jak w przykładzie. Jeśli sprawdzę wysyłane żądanie, jest to tylko []
. Obecnie wszystko, co mam w swoim proxy, to:
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
});
Kliknięcie Usuń nie powoduje usunięcia aktualnie wybranego elementu. Czy muszę ustawić odpowiedni zniszczony adres URL w proxy i dlaczego nie przesyła żadnych informacji o tym, co należy usunąć w nagłówku żądania? Nie było innych przykładów robienia CRUD z drzewa, które mogłem znaleźć.
EDIT:
Zauważ, że powodem zamieszania było to, że za pomocą store.destroy(record)
Ext.data.Store ma metodę remove(record)
ale Ext.data.TreeStore nie. Ponadto, skrótowe podejście do niszczenia to record.destroy()
, a nie record.remove(true)
.
Pamiętaj jednak, że otrzymałem błędy: record.destroy()
lub record.remove(true)
. Przypuszczalnie sklep musi zachować węzły, które będą wysyłane jako JSON, więc zamiast tego użyj record.remove()
.
Dzięki, głupi błąd z mojej strony :) Mogę także zobaczyć usunięty element z 'store.getRemovedRecords()' przed jego wysłaniem do proxy. –
Użyłem 'record.remove()' w przeciwnym razie dało błędy. –