ネストされたJSONDataをツリーグリッドにロードしようとしています。データを取得する最初の呼び出しで、グリッドにデータを入力するために必要なすべてのデータがJSONオブジェクトとして応答に返されます。ただし、グリッド内のすべての親オブジェクトのデータをフェッチしようとしていることがわかります。
偽のGETを実行した後でも、子ノードにデータを入力することはできません。
2つのモデルを定義しました。子モデルを参照する「hasMany」関係を持つ親と、親モデルを参照する「BelongsTo」関係を持つ子ノードです。
JSONリーダーでAjaxプロキシを使用しています。
Webを検索すると、多くの情報が見つかりません。extJSドキュメントのuser-orderitems-productsの例を使用して、モデルとツリーを設定しようとしました。
何が欠けているのか完全にはわかりません。どんな援助でも大歓迎です。
JSON(人は子オブジェクトを持っている場合と持っていない場合があります):
People: {
{firstName: john, id:123, uniqueID:1231, leaf:true},
{firstName: jane, id:124, uniqueID:1240,
offspring:[
{firstName: adam, id:124, uniqueID:1241, leaf:true},
{firstName: brandon, id:124, uniqueID:1242, leaf:true},
{firstName: claire, id:1243, uniqueID:1243, leaf:true}
]}
}
モデル:
Ext.define('Person',{
extend: 'Ext.data.Model',
fields: [
{name: 'firstName', type:'string'},
{name: 'uniqueID', type:'float'}
hasMany: {
model:'Offspring',
name: 'Offspring',
associationKey: 'offspring',
primaryKey: 'uniqueID',
foreignKey: 'id'
}
],
proxy: {
type: 'rest',
url: 'http://blah/blah',
reader: {
type: 'json',
root: 'People'
}
}
});
Ext.define('Offspring',{
extend: 'Ext.data.Model',
fields: [
{name: 'firstName', type:'string'},
{name: 'uniqueID', type:'float'}
],
belongsTo: 'Person'
});
ストアの定義:
var store = Ext.create('Ext.data.TreeStore', {
model: 'Person',
folderSort: true
}