2

リターンの内容に基づいてモデルにフィールド定義を作成することは可能ですか? 他の 2 つのフィールドを連結したフィールドを作成したいと考えています。

私が現在行っているのは、ストアをロードしてから、各レコードを処理してデータを設定することです。ただし、これはややエレガントではありません。

Ext.define("moddie", {
    extend:'Ext.data.Model',
    config:{
        fields     : [
            "id",
            "move",
            "moveId"
        ]
    }
});

Ext.create('Ext.data.Store',{
    model:'moddie',
    proxy:{
        type:'ajax',
        url: 'json.json',
        reader: {
                type: 'json',
            }
        },
    },  
    config:{
        listeners:{
            load:{
                fn  : function(s,r,o){
                s.each(function(record){
                    record.set(moveId,id+move)
                }
            }
        }
    }
})

フィールドを concat -INSIDE- モデルとして定義したいと思います。何かのようなもの:

Ext.define("moddie", {
    extend:'Ext.data.Model',
    config:{
        fields     : [
            "id",
            "move",
                    {name:"moveId",value:id+move}//can I, how should I define this?
        ]
    }
});
4

1 に答える 1

4

絶対。

Ext.define("moddie", {
    extend:'Ext.data.Model',
    fields: [
        { name: 'id' }, 
        { name: 'move' }, 
        { name: 'moveId', convert: function(v, r) {
           return r.get('id') + r.get('move');
        }}, 
    ]
});
于 2012-05-22T16:52:01.910 に答える