extjs4如何使用Ext.data.DirectStore

extjs4如何使用Ext.data.DirectStore,extjs,Extjs,我试图使用“Ext.data.DirectStore”直接在服务器端调用函数。 然而,我现在有一些问题 下面是我使用mvc模式编写的代码 Ext.define('DirectApp.store.DirectStore', { extend : 'Ext.data.DirectStore', constructor : function(cfg){ cfg = Ext.apply(this, { storeId : 'directStore', model

我试图使用“Ext.data.DirectStore”直接在服务器端调用函数。 然而,我现在有一些问题

下面是我使用mvc模式编写的代码

Ext.define('DirectApp.store.DirectStore', {
extend : 'Ext.data.DirectStore',
constructor : function(cfg){
    cfg = Ext.apply(this, {
        storeId : 'directStore',
        model : 'DirectApp.model.DirectModel',  
        proxy : {
            type : 'direct',
            api : {
                create : DirectSvcImpl.updatePersonalRPC,
                update : DirectSvcImpl.updatePersonalRPC,
                read : DirectSvcImpl.getPersonalAllRPC,
                destory : DirectSvcImpl.destoryPersonalRPC
            }
        },
        autoLoad : true
    });                     
    this.callParent([cfg]);
}
}))

下面是我正在尝试做的动作

var tbar = Ext.create('Ext.toolbar.Toolbar', {
items : [{
    text : 'Edit',
    handler : function(){
        var s = Ext.data.StoreMgr.get('directStore');

        var r = Ext.ModelManager.create({
            id : '346012',
            firstName : '',
            lastName : '',
            company : '',
            email : '',
            dob : '',
            age : 3,
            coworker : 'N/A'
        }, 'DirectApp.model.DirectModel');

        s.insert(0, r);
        s.sync();
    }       
},'-',{
    text : 'Remove',
    handler : function(){
        var store = Ext.data.StoreManager.get('directStore');
            store.removeAt(0);
            store.sync();
    }
},'-']
}))

首先,当我删除记录时,我得到了下面的错误。 它表示“未捕获的TypeError:无法调用未定义的方法'apply'”

作为参考,我使用了配置“directFn”,它运行良好。 我不能使用api配置吗

第二,我想在创建新记录时将数据发送到服务器端。 但是,它显示如下。数据为空。如何发送数据

action: "DirectSvcImpl"
data: null
method: "getPersonalAllRPC"
tid: 1
type: "rpc"

请给我一个建议。这个问题我将讨论一周。

如果您能在JSFIDLE上做一个示例,那就太好了。您能告诉我更多细节吗?我有这个问题很久了。几乎筋疲力尽!!