如何解决Extjs 6:在保存时存储传播到记录中的 extraParam
我正在使用 ExtJS 6.5 在工具栏中创建一个带有组合框的网格。组合框在特定视图模型中绑定了一个商店。选择选项时,通过将extraparam添加到商店代理,将在viewmodel的商店中使用BeForoad侦听器刷新(发布)。哪个工作正常。 但是,当我尝试编辑绑定到网格的一条记录时,即使在请求 (PUT) 之前,记录看起来也不错,当 record.save() 时,extraparam 将作为记录的参数发送。 代码如下所示:
items:[
{
xtype: 'grid',bind: {
store: '{gridstore}'
},tbar: [
{
xtype: 'comboBox',fieldLabel: false,reference: 'some_selection',width:100,bind: {
store: '{cat}'
},listeners: {
change: 'reloadStore'
}
}
],columns: [
{
dataIndex: 'name',text: 'Name',align: 'left',flex: 1,minWidth: 150
},{
dataIndex: 'soemthing',text: 'Something',minWidth: 150
}]}
视图模型:
stores: {
gridstore: {
model: 'Model',listeners: {
beforeload: function (store){
var category = Ext.ComponentQuery.query('[reference="some_selection"]')[0],category_value = category.value;
store.getProxy().extraParams = {
category: category_value
}
}
}
},cat: {
fields: ['cat'],data: [
['One'],['Two'],['Three'],['Four'],['Five']
]
}
}
编辑时:
view.add({
xtype: form_panel,modal: true,viewmodel: {
data: {
currentRecord: record
}
}
});
保存时:
record.save({
success: function(response,operation) {
console.log(response)
}
});
我通过删除商店加载侦听器上的 extraparam 找到了一种解决方法:
load: function (store) {
if (!store.isLoading())
delete store.getProxy().getExtraParams()['category'];
}
我知道记录的存储有额外的参数,但为什么在保存记录时发送?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。