微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

如果我有一个网格正在使用名为“用户”的商店,将列出系统中的所有用户.同时我也有一个comboBox,它也使用了“Users”这个商店,但是这次我想列出所有“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中使用它?在那里我只是在form-object中指定“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
},

但是,它给出错误“未捕获TypeError:无法读取属性”ServersIP“未定义”

但这个名字是正确的:

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的参数中只有一个“一级”变量,它将起作用.由于某种原因,当我传入proxy =>时,它不喜欢它extraParams =>参数1.

一个工作:

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:组合框

//set comboBox store

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

我希望你明白我提出的解决方案.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据复制操作的两种方式。‌在聊深浅拷贝之前咱得了解一下js中的两种数据类型:
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:重建二叉树、反向输出链表每个节点 题目 重建二叉树: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列 {1,2,4,7,3,5,6,8} 和中序遍历序列 {
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须了解的知识点,现在迎来了ES6+的时代,因为箭头函数的出现,所以感觉有必要对 this 问题梳理一下,所以刚好总结一下JavaScript中this指向的问题。
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高