属于ExtJS模型

时间:2011-10-24 20:48:12

标签: javascript extjs extjs4

我有两个模型:“身份”和“个人资料”。标识'belongsTo'个人资料。当我得到“身份”类型的记录时,我希望(通过此记录)获得相应的个人资料。我正在尝试使用以下代码:

Ext.define('App.model.Identity', {
    extend: 'Ext.data.Model',
    fields: [
            // ...
            {name: 'id_profile',  type: 'int'},
            // ...
            ],

    belongsTo: {
        model: 'App.model.Profile',
        primaryKey: 'id',
        foreignKey: 'id_profile',
        associatedName: 'Profile'
    },

    proxy: {
        type: 'ajax',
        api: {
            read: App.Config.getBaseUrl() + '/admin_identity/list',
            create: App.Config.getBaseUrl() + '/admin_identity/create',
            update: App.Config.getBaseUrl() + '/admin_identity/update',
            destroy: App.Config.getBaseUrl() + '/admin_identity/destroy'
        },
        reader: {
            type: 'json',
            root: 'data'
        }
    }
});

Ext.define('App.model.Profile', {
    extend: 'Ext.data.Model',
    fields: [
            {name: 'id',  type: 'int'},
            // ...
            ],

    belongsTo: {
        model: 'App.model.Identity',
        primaryKey: 'id',
        foreignKey: 'id_profile',
        name: 'identities'
    },

    proxy: {
        // ...
    }
});

当我尝试这样做时:

function viewProfile(identity) {
    identity.getProfile(function(profile){
        console.log(profile);
    });
}

我得到的是一个空的配置文件的对象。奇怪的是Identity类没有做任何http请求来获取配置文件。我这样做了吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

你试过了吗?

identity.getProfile({
    success:function(profile, operation){
    },
    failure: function(profile, operation){
        //check for a failure
    }
});

我也会尝试删除associatedName属性。