0

我在一个事务中创建一个一对多的表单。我真的需要完全创建记录,或者根本不创建。如果其中一个数据不符合要求,我已经使用 java 实现了一个回滚代码来回滚所有操作。接口使用 extjs,我与 Jackson 有 REST 接口。

问题是,ExtJS 4 以特定形式将所有内容连同所有详细记录一起发送到 URL 的最佳方式是什么?尽管我做了任何事情,Ext.Store 似乎都一一发送数据。

好吧,简而言之,我需要 Ext.Store 将这样的原始内容与 application/json 内容一起发布:

{
    ID: '',
    派对:3,
    机器:'x1',
    产品:'pr001',
    运行时间:12,
    材料: [{
        项目:'rm001',
        数量:'39.01',
        对齐:'9.930'
    }, {
        项目:'rm002',
        数量:'20.03',
        对齐:'9.0234'
    }]
}

问题是,子存储总是在输入数据时发送数据,当我将 autoSync 设置为 false 时,它​​仍然会一一发送,而不是通过父存储一次发送所有内容。

任何示例代码?

谢谢

4

1 回答 1

0

我这样做的方式是通过 xml,但想法应该是相同的,我的父存储包含一个序列化函数,它看起来像这样

serialize: function(){
     var store = this;
     var xml = [];
     store.each(function(record){
        xml.push('id:'+record.get(id))
        xml.push('party:'+record.get(party))
        record.materials().each(function(materials_rec){
           xml.push('item:'+materials_rec.get(item));
            ...                 
        });
     });
     return xml.join('');
}

所以我从控制器调用这个函数并提交一个 ajax 请求,该请求将包含父存储和子存储的所有记录

于 2013-06-28T20:30:24.267 回答