0

ExtJS 4を使用して、次の方法で2つのモデルを定義しました。

Ext.define('GlsAmCrm.model.grpModel',{
    extend: 'Ext.data.Model',   
    idProperty: 'recordid',
    fields:[
        {name: 'text', type: 'string'},
        {name: 'id', type: 'string'},
        {name: 'cls', type: 'string'},          
        {name: 'leaf', type: 'bool'}        

    ],  
    proxy: {
        type: 'ajax',
        api:{
            create: '/app/data/grpdata.php/create',
            read:'/app/data/grpdata.php/read',
            update:'/app/data/grpdata.php/update',
            destroy:'/app/data/grpdata.php/destroy'
        },      
        reader: {
            type: 'json',
            root: 'condata',
            successProperty: 'success'
        }
    },
    hasMany: {model: 'GlsAmCrm.model.conModel', name: 'condata', associationKey:'condata'}
});

Ext.define('GlsAmCrm.model.conModel',{
    extend: 'Ext.data.Model',   
    idProperty: 'recordid',
    fields:[
        {name: 'text', type: 'string'},
        {name: 'id', type: 'string'},
        {name: 'cls', type: 'string'},          
        {name: 'leaf', type: 'bool'},
        {name: 'loaded', type: 'bool'},
        {name: 'parentId', type: 'string'},
        {name: 'category', type: 'string'}

    ],
    belongsTo: 'GlsAmCrm.model.grpModel'
});

返されるJSON応答を使用して、ネストされたデータをツリーパネルに正常にロードしました。

{
    "condata": [
        {
            "text": "<span class=\"tree-group\">Arrowleaf Technologies</span>",
            "id": "d61c7bb7-dd88-11e1-a355-0013d3f996ae",
            "cls": "tree-root",
            "leaf": false,
            "condata": [
                {                
                    "text": "<span class=\"tree-contact\">Dos Santos, Robert A</span>",
                    "id": "1df08c59-d718-11e1-aa72-0013d3f996ae",
                    "cls": "tree-root",
                    "parentId": "d61c7bb7-dd88-11e1-a355-0013d3f996ae",
                    "leaf": true,
                    "loaded": true,
                    "category": "A"
                },
                {
                    "text": "<span class=\"tree-contact\">Interrante, Sheila D</span>",
                    "id": "0d212d01-d718-11e1-aa72-0013d3f996ae",
                    "cls": "tree-root",
                    "parentId": "d61c7bb7-dd88-11e1-a355-0013d3f996ae",
                    "leaf": true,
                    "loaded": true,
                    "category": "B"
                },
                {
                    "text": "<span class=\"tree-contact\">Sanford, Martha J</span>",
                    "id": "14e3e4cb-d718-11e1-aa72-0013d3f996ae",
                    "cls": "tree-root",
                    "parentId": "d61c7bb7-dd88-11e1-a355-0013d3f996ae",
                    "leaf": true,
                    "loaded": true,
                    "category": "C"
                },
                {
                    "text": "<span class=\"tree-contact\">Simmons, Shawn P</span>",
                    "id": "06354f92-d718-11e1-aa72-0013d3f996ae",
                    "cls": "tree-root",
                    "parentId": "d61c7bb7-dd88-11e1-a355-0013d3f996ae",
                    "leaf": true,
                    "loaded": true,
                    "category": "D"
                }
            ]
        },
        {
            "text": "<span class=\"tree-group\">Consolidated Physician Services</span>",
            "id": "bba64918-dd87-11e1-a355-0013d3f996ae",
            "cls": "tree-root",
            "leaf": false
        },
        {
            "text": "<span class=\"tree-group\">Pinellas County Schools</span>",
            "id": "ed409413-e947-11e1-a7ed-0016177c526f",
            "cls": "tree-root",
            "leaf": false
        }
    ]
}

最初のエントリを展開すると、すべての子の葉が表示されます。子リーフの1つ(たとえば、Dos Santos、Robert)をクリックすると、その子レコードの「カテゴリ」フィールドにアクセスしたいと思います。

...
listeners: {
    newselection: function(view,rec){
        console.log ("THIS IS WHERE I NEED HELP");
    }
}
...

ここで子レコードを取得する方法についての洞察をいただければ幸いです。

4

1 に答える 1

0

私はあなたが何を望んでいるのかについて少し混乱していますが、これがそれだと思います:

listeners: {
    select: function(rowModel, record){
    console.log(record.get("category"));
    }
}
于 2012-09-07T13:26:50.650 に答える