この例を使用して、基本的な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.destroy()
なくですrecord.remove(true)
。
ただし、またはを実行するとエラーが発生することに注意してrecord.destroy()
くださいrecord.remove(true)
。おそらく、ストアはJSONとして送信するノードを保持する必要があるため、record.remove()
代わりに使用します。