0

我在单轨应用程序中使用 extjs。我正在使用 JsonStore 将数据保存回我的控制器。我已阅读、更新和删除工作正常。但我似乎无法弄清楚如何在创建时重新格式化我的回复。目前,Firebug 给我以下错误:

未捕获的异常:Ext.data.DataReader:#realize 被调用时使用了无效的远程数据。请参阅 DataReader#realize 的文档并查看您的 DataReader 配置。

我对 WTF 这个错误的含义感到困惑。有人有指点吗?下面的相关代码位:

 var proxy = new Ext.data.HttpProxy({
        api: {
            read: '../foo/bar.rnr',
            create: '../foo/CreateBar.rnr',
            update: '../foo/UpdateBar.rnr',
            destroy: '../foo/DeleteBar.rnr'
        }
    });

    var writer = new Ext.data.JsonWriter({
        encode: true,
        writeAllFields: true,
        listful: true,
        destroyRecord: function(rec) {
            return this.toHash(rec);
        }
    });


    var store = new Ext.data.JsonStore({
        autoLoad: true,
        autoSave: false,
        url: '../foo/bar.rnr',
        method: 'get',
        baseParams: { Id: pageParameters.Id },
        proxy: proxy,
        writer: writer,
        id: 'Id',
        fields: [
            { name: 'Id', type: 'int' },
            { name: 'Name', type: 'string' },
            { name: 'Note', type: 'string', defaultValue: null }

        ]
    });

我目前的反应看起来像这样,但这是经过大量试验和错误之后,所以它被大量冲洗了。

{"success":true,"message":"OK!","undefined":[]}
4

1 回答 1

2

您需要在返回的 json 对象中返回记录。

转到我的书 Ext JS in Action 中的以下示例,该示例展示了如何使用数据编写器进行 crud 操作。

http://extjsinaction.com/examples/chapter08/usingWriterWithHttpProxy.html

右键单击以插入新记录。观察来自 firebug 的 Ajax req,你会看到它在起作用。

于 2010-03-05T19:09:21.800 回答