EXTJS访问Setter

时间:2013-05-23 00:43:53

标签: javascript extjs extjs4

Ext.define("E.model.P", {
    extend: 'Ext.data.Model',
    associations: [{
        type: 'hasOne',
        model: 'E.model.D',
        associationKey: 'D',
        name:'demo',
        getterName: 'getD', // avoid dots in function name
        setterName: 'set' // avoid dots in function name
    }],
    fields: [
                { name: 'id', type: 'int' },
                { name: 'CPR', type: 'string' },


    ]



});

我有一个使用Model P

创建的商店
  var store = Ext.create("E.store.MyP");

            store.load(function() {
                store.each(function(record) {


                    var info = {
                        data: Ext.encode(record.getData()),
                        allData: Ext.encode(record.getData(true)),
                        personData: Ext.encode(record.getD()) //Here i get the getD is not a function
                    };
                    console.log(info);
                });
            });

我遇到的问题是getD不是一个函数,它只有在没有类定义ex:Ext.define(“P”)时才能工作。

那么如何访问getD以便我可以进一步向下钻取?

这有效http://jsfiddle.net/aqHdC/

现在,当我开始分离课程时,它停止工作,并说无法找到功能

1 个答案:

答案 0 :(得分:0)

必须加载相关模型(在您的示例中为E.model.D)类才能生成getter。

这意味着您需要在基础模型类定义中要求此类(或者,如您所知,将所有类放在同一个文件中)。

例如:

Ext.define("E.model.P", {
    extend: 'Ext.data.Model',

    // here's for the class loader!
    requires: [
        'E.model.D'
    ],

    // rest of your definition
});