gpt4 book ai didi

javascript - 将商店加载到 ExtJS 4 中的组合框时如何发送额外参数?

转载 作者:可可西里 更新时间:2023-11-01 02:37:11 36 4
gpt4 key购买 nike

在 ExtJS 4 中为组合框使用商店时如何发送额外参数?

我知道我可以在代理设置中使用“extraParams”,但这会影响使用同一商店的所有元素。

也就是说,如果我有一个网格,它正在使用一个名为“用户”的商店,它将列出系统中的所有用户。同时,我有一个组合框,它也使用商店“用户”,但这次我想列出所有具有“status=2”的用户,因此我想发送参数“&status=2”对后端的 Ajax 调用。

如果我使用类似的东西:

store.getProxy().extraParams = {
status: 2
};

它会工作,但网格将同时更新为也使用“&status=2”。我只希望组合框使用参数。

我想我可以关闭网格上的“自动更新”,然后在组合框的“渲染”事件上设置“extraParams”,然后在组合框隐藏时取消设置,但这将是一个非常丑陋的解决方案。

我也可以将商店复制到“Users2”并将其用于组合框,但这也是一个丑陋的解决方案。

正确的做法是什么?对于大多数人来说,这一定是一件很平常的事情。

更新 1:

我知道我可以使用类似的东西:

store.load({
params:{
'foo1': bar1,
'foo2': bar2
}
});

但是我如何在 ExtJS 4 MVC 中使用它呢?我只是在表单对象中指定“store: Users”。我如何将这些额外参数发送到 .load() 函数?

我尝试了以下方法:

{
xtype: 'combobox',
fieldLabel: 'Server',
name: 'server',

//store: 'ServersIP',
store: new Cloud.store.ServersIP(),

/*
listeners: {
beforeload: function(store, options) {
console.log(store);
}
},
*/

valueField: 'id',
displayField: 'name_id',
emptyText: 'Select a Server...',
editable: false
},

但是,它给出错误“Uncaught TypeError: Cannot read property 'ServersIP' of undefined”

但是名字是正确的:

Ext.define('Cloud.store.ServersIP', {

extend: 'Ext.data.Store',
model: 'Cloud.model.Server',

另外,我应该把监听器放在哪里?我假设我在我的例子中也没有得到正确的那个?

更新 2:

我现在对解决方案有了更进一步的了解:

store: Ext.create('Cloud.store.ServersIP', {
proxy: {
extraParams: {
param1: 'value1',
param2: 'value2'
}
},
}),

以上内容无效。如果我在 Ext.Create 的参数中只有一个“一级”变量,它就可以工作。出于某种原因,当我传入代理 => extraParams => param1 时它不喜欢它。

这个有效:

store: Ext.create('Cloud.store.ServersIP', {
aaa: 'bbb'
}),

当然,我的 extraParams 不存在。有人知道如何解决这最后一部分吗?

最佳答案

我刚刚解决了这个问题。combobox queryMode:remote 带有额外的参数。

只需在 initComponent 内的 "VIEW" 中实例化商店并覆盖代理

//instantiate the store

var store = Ext.create('Cloud.store.ServersIP', {
storeId: 'YourStoreId'
});
store.proxy.extraParams = { param1: 'value1', param2: 'value2' };

在 xtype:combobox 中

//set combobox store

{
xtype: 'combobox',
queryMode:'remote',
store : Ext.data.StoreManager.lookup('YourStoreId'),
...
...
}

希望您理解我提出的解决方案。

关于javascript - 将商店加载到 ExtJS 4 中的组合框时如何发送额外参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17763154/

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