이 예제를 사용하여 기본 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을 설정해야하며 요청 헤더에서 삭제해야 할 항목에 대한 세부 정보를 보내지 않는 이유는 무엇입니까? 내가 찾을 수있는 나무에서 CRUD를하는 다른 사례는 없었습니다.
편집 : store.destroy(record)
를 사용하는 혼란의 원인이 Ext.data.Store이 방법 remove(record)
을 가지고 있지만 Ext.data.TreeStore하지 않는 것을
참고. 또한, 파괴에 대한 약식 접근법은 record.remove(true)
대신에 record.destroy()
입니다.
그러나 record.destroy()
또는 record.remove(true)
을 수행하는 중에 오류가 발생했습니다. 아마도 상점에서 JSON으로 전송할 노드를 유지해야하므로 record.remove()
을 대신 사용하십시오.
내 부분에 고마워, 어리석은 실수 :) 또한 store.getRemovedRecords()를 사용하여 삭제 된 항목을 프록시에 보내기 전에 볼 수 있습니다. –
'record.remove()'를 사용했습니다. 그렇지 않으면 에러가 발생했습니다. –