0
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/

现在当我开始分离类时,它停止工作并说找不到功能

4

1 回答 1

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
});
于 2013-05-23T21:10:22.663 回答