extjs4 - 是否有代理的非json/xml编写器?

Ben*_*Ben 8 extjs extjs4

我正在构建一些模型来与之前项目中的现有API进行交互.

API依赖于标准POST方法来保存数据.

我已经将模型和代理配置到将数据推送到服务器的位置,但似乎只有两种编写器类型,json和xml.

proxy: {
        /* ... */
        reader: {
            type: 'json',
            root: 'results'
        },
        writer: {
            type: '???' // <-- can only see json or xml in the docs
        }
    }
Run Code Online (Sandbox Code Playgroud)

是不是只有在post字段中提交数据的标准POST编写器?

我很惊讶不会是标准的作家类型.

(解析json格式不会太难实现,但这意味着要更新许多旧的api文件.)

Ben*_*Ben 5

好吧,通过检查现有的编写器源代码,我能够很容易地创建该编写器.

现有编写者能够做到的一件事 - 也就是开发团队只实现json和xml版本的原因 - 就是他们可以同时推送多个记录.

这可以在POST中实现,但会有点复杂.

如果您尝试使用POST将单个模型推送到api,则此编写器将起作用:

Ext.define('Ext.data.writer.SinglePost', {
    extend: 'Ext.data.writer.Writer',
    alternateClassName: 'Ext.data.SinglePostWriter',
    alias: 'writer.singlepost',

    writeRecords: function(request, data) {
        request.params = data[0];
        return request;
    }
});
Run Code Online (Sandbox Code Playgroud)

并将其用于代理中的writer:

writer: {
            type: 'singlepost'
        }
Run Code Online (Sandbox Code Playgroud)