gpt4 book ai didi

json - Ext.JS 防止代理发送额外的字段

转载 作者:行者123 更新时间:2023-12-04 20:00:21 26 4
gpt4 key购买 nike

这是我的模型:

Ext.define('A.model.Group', {
extend: 'Ext.data.Model',
fields:['id', 'name'],
proxy: {
type: 'rest',
url: '/group',
reader: {
type: 'json',
root: 'data'
},
writer: {
type: 'json',
writeAllFields: false
}
}
});

该模型正在通过 TreeStore 在树中使用

问题是当 PUT , POSTDELETE方法已完成,而不是仅发送来自 JSON 有效负载中模型的字段,而是来自 Ext.data.NodeInterface 的字段。也发送。这是一个示例有效负载:
{"id":"","name":"TestGroup","parentId":"8","index":0,"depth":3,"checked":null}

我不想要额外的字段 parentId , index , depth , 和 checked将被寄出。做这个的最好方式是什么?我不想在服务器上忽略它们。

最佳答案

如果您不想仅将特定数据发送到服务器,则 writeAllFields 不是解决方案,因为它设置为 false 它只发送修改后的字段。
您的问题的解决方案是定义您自己的编写器并覆盖方法 getRecordData这是一个可能的例子:

var newWriter = Ext.create('Ext.data.writer.Json',{
getRecordData: function(record){
return {'id':record.data.id,'name':record.data.name};
}
})

Ext.define('A.model.Group', {
extend: 'Ext.data.Model',
fields:['id', 'name'],
proxy: {
type: 'rest',
url: '/group',
reader: {
type: 'json',
root: 'data'
},
writer: newWriter
}
});

关于json - Ext.JS 防止代理发送额外的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8003975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com