如何在 extraParams 存储 extjs 上设置动态值
How to set dynamic value on extraParams store extjs
嗨,我在 extjs 上将动态值存储到 extraParams
时遇到问题..
我的情况是,当我 console
在这里时,我可以从我的组件中获取价值:
listeners: {
load: function (store, records, success) {
console.log(Ext.ComponentQuery.query('combobox[reference=terminal2]')[0])
}
}
我从那个组件得到了值,但是当我试图将它传递给 extraParam
时,我得到了错误 undefined
..
proxy: {
type: 'ajax',
url: Config.getApi() + 'api/public/index',
extraParams: {
dParams: Ext.ComponentQuery.query('combobox[reference=terminal2]')[0]
},
},
我收到错误 undefined
..
我的完整商店代码
Ext.define('Admin.store.npk.mdm.LayananAlat', {
extend: 'Ext.data.Store',
alias: 'store.layananalat',
requires: [
'Config'
],
autoLoad: true,
proxy: {
type: 'ajax',
url: Config.getApi() + 'api/public/index',
actionMethods: {
read: 'POST'
},
paramsAsJson: true,
timeout: 120000,
extraParams: {
dParams: Ext.ComponentQuery.query('combobox[reference=terminal2]')[0]
},
headers: {
'token': Ext.util.Cookies.get('Tokens')
},
reader: {
type: 'json',
rootProperty: function (obj) {
return obj.result
},
totalProperty: function (obj) {
return obj.count
}
}
},
listeners: {
load: function (store, records, success) {
console.log(Ext.ComponentQuery.query('combobox[reference=terminal2]')[0])
}
}
});
或者是否有另一种方法可以将动态值传递给 extraParams
on proxy
store in extjs?
您的代理设置将在构建阶段设置,此时您的 UI 很可能未构建,因此您的组件查询无法 return 引用的 UI 元素。
关闭 autoLoad
并从商店定义中删除代理部分。然后在某个地方设置代理,您可以确定 UI 已经构建。例如。在视图的 show/painted 事件中,您可以添加类似
的代码
const store = Ext.getStore('layananalat');
store.setProxy({
type: 'ajax',
url: Config.getApi() + 'api/public/index',
actionMethods: {
read: 'POST'
},
paramsAsJson: true,
timeout: 120000,
extraParams: {
dParams: Ext.ComponentQuery.query('combobox[reference=terminal2]')[0]
},
headers: {
'token': Ext.util.Cookies.get('Tokens')
},
reader: {
type: 'json',
rootProperty: function (obj) {
return obj.result
},
totalProperty: function (obj) {
return obj.count
}
});
store.load();
嗨,我在 extjs 上将动态值存储到 extraParams
时遇到问题..
我的情况是,当我 console
在这里时,我可以从我的组件中获取价值:
listeners: {
load: function (store, records, success) {
console.log(Ext.ComponentQuery.query('combobox[reference=terminal2]')[0])
}
}
我从那个组件得到了值,但是当我试图将它传递给 extraParam
时,我得到了错误 undefined
..
proxy: {
type: 'ajax',
url: Config.getApi() + 'api/public/index',
extraParams: {
dParams: Ext.ComponentQuery.query('combobox[reference=terminal2]')[0]
},
},
我收到错误 undefined
..
我的完整商店代码
Ext.define('Admin.store.npk.mdm.LayananAlat', {
extend: 'Ext.data.Store',
alias: 'store.layananalat',
requires: [
'Config'
],
autoLoad: true,
proxy: {
type: 'ajax',
url: Config.getApi() + 'api/public/index',
actionMethods: {
read: 'POST'
},
paramsAsJson: true,
timeout: 120000,
extraParams: {
dParams: Ext.ComponentQuery.query('combobox[reference=terminal2]')[0]
},
headers: {
'token': Ext.util.Cookies.get('Tokens')
},
reader: {
type: 'json',
rootProperty: function (obj) {
return obj.result
},
totalProperty: function (obj) {
return obj.count
}
}
},
listeners: {
load: function (store, records, success) {
console.log(Ext.ComponentQuery.query('combobox[reference=terminal2]')[0])
}
}
});
或者是否有另一种方法可以将动态值传递给 extraParams
on proxy
store in extjs?
您的代理设置将在构建阶段设置,此时您的 UI 很可能未构建,因此您的组件查询无法 return 引用的 UI 元素。
关闭 autoLoad
并从商店定义中删除代理部分。然后在某个地方设置代理,您可以确定 UI 已经构建。例如。在视图的 show/painted 事件中,您可以添加类似
const store = Ext.getStore('layananalat');
store.setProxy({
type: 'ajax',
url: Config.getApi() + 'api/public/index',
actionMethods: {
read: 'POST'
},
paramsAsJson: true,
timeout: 120000,
extraParams: {
dParams: Ext.ComponentQuery.query('combobox[reference=terminal2]')[0]
},
headers: {
'token': Ext.util.Cookies.get('Tokens')
},
reader: {
type: 'json',
rootProperty: function (obj) {
return obj.result
},
totalProperty: function (obj) {
return obj.count
}
});
store.load();