问题描述
我正在使用 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 (将#修改为@)