Store.add不会在ExtJs4中调用服务器

时间:2014-05-21 00:14:47

标签: javascript extjs store

我正在尝试通过store.add后跟store.sync()来插入新记录。但它不会调用服务器。但是,当我加载现有记录并进行更改并执行store.sync时,它确实有效。我的商店如下所示:

            Ext.define('app.store.MyStore', {
                extend : 'Ext.data.Store',
                model : 'app.model.MyModel',
                storeId : 'MyStore',
                autoLoad: true,
                pageSize : 50,
                proxy : {
                    type : 'rest',
                    actionMethods : {
                        create : 'POST',
                        read : 'GET',
                        update : 'PUT',
                        destroy : 'DELETE'
                    },
                    root : 'results',
                    url : 'my_url',
                    reader : {
                        type : 'json',
                        root : 'result',
                        totalProperty : 'totalCount',
                        messageProperty : 'message'
                    },
                    simpleSortMode : true,
                }
            });

我正在添加以下记录:

store.add (new app.model.MyModel (
    {
        'field1' : val1, 
        'field2' : val2, 
        'field3' : val3
     }
     );

2 个答案:

答案 0 :(得分:1)

我在代理配置中看不到编写器。无论何时想要将数据发送到服务器,都应该在代理中配置writer。

Ext.define('app.store.MyStore', {
                extend : 'Ext.data.Store',
                model : 'app.model.MyModel',
                storeId : 'MyStore',
                autoLoad: true,
                pageSize : 50,
                proxy : {
                    type : 'rest',
                    actionMethods : {
                        create : 'POST',
                        read : 'GET',
                        update : 'PUT',
                        destroy : 'DELETE'
                    },
                    root : 'results',
                    url : 'my_url',
                    reader : {
                        type : 'json',
                        root : 'result',
                        totalProperty : 'totalCount',
                        messageProperty : 'message'
                    },
                    writer:{
                        /*configure writer as per your requirement*/                    
                    },
                    simpleSortMode : true,
                }
            });

答案 1 :(得分:-1)

Store.add方法将模型实例添加到Store,因此它接受Model实例或Model配置对象的数组。

如果要对服务器进行Ajax调用,则应使用store.load而不是store.add

see the link for reference