TECHTOGOU

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

coder 2024-05-16 原文

在 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/

有关javascript - 将商店加载到 ExtJS 4 中的组合框时如何发送额外参数?的更多相关文章

  1. Javascript 在函数调用中跳过参数 - 2

    这里是JavaScript初学者。假设我有一个带有3个参数的javascript函数:functionf(arg1,arg2,arg3){//dostuff}我知道我可以调用f(value1,value2);在这种情况下,函数范围内的arg1将为value1,arg2将为value2,而arg3将为null。一切正常。但是,如果我想调用仅向arg1和arg3赋值的函数,我需要执行如下操作:f(value1,null,value2);有没有一种方法可以以更像C#的方式指定哪些参数具有哪些值(无需将未给定参数指定为null)?类似这样的事情:为了仅使用arg1和arg3的值调用f,我会写f

  2. javascript - 如何在 Sequelize.js 中定义对象数组? - 2

    如何在Sequelize.js模型中定义对象数组字段?我需要这样的东西{"profiles":[{"profile_id":10,"profile_pictures":["pic1.jpg","pic2.jpg","pic3.jpg"],"profile_used_id":12},...//moreprofiles]}我检查了docs,但找不到相关的数据类型,我在这里遗漏了什么吗? 最佳答案 我已经成功地通过定义我的模型来

  3. javascript - 如何使用 javascript 将时间戳字符串转换为本地时间? - 2

    我有一个JSP页面,我在其中提取存储在数据库中的时间戳作为字符串,格式为ThuAug21201422:09:23GMT+0530(IndiaStandardTime).当然,我可以按原样在页面中显示它,但是我一直在寻找一种javascript解决方案,它可以让我根据用户的本地时区转换此时间戳。有办法吗?或者对于这样的时间戳是不可能的?非常感谢任何帮助,我的问题可能听起来很愚蠢,因为我仍在熟悉javascript。谢谢 最佳答案 我自己想通了,我能够完成我需要的。将timestamp从数据库传递给varnewDate(timestam

  4. javascript - 为什么 JavaScript 认为 354224848179262000000 和 354224848179261915075 相等? - 2

    这个问题在这里已经有了答案:WhatisJavaScript'shighestintegervaluethatanumbercangotowithoutlosingprecision?(21个答案)关闭8年前。因此,我开始尝试使用递归函数找到第100个斐波那契数,并使用以下代码内存该函数。Function.prototype.memoize=function(){varoriginalFunction=this,slice=Array.prototype.slice;cache={};returnfunction(){varkey=slice.call(arguments);i

  5. javascript - NVD3 - 如何刷新数据功能以在点击时生成新数据 - 2

    我有一个折线图,每次页面刷新时它都会更改数据,这很好,但我需要通过用户点击来刷新。这是因为页面上最终会有其他输入字段,刷新页面会破坏他们当前的session。jsfiddle-http://jsfiddle.net/darcyvoutt/dXtv2/这是创建该行的代码设置:functioneconomyData(){//RoundsvarnumRounds=10;//Stabilityofeconomyvarstable=0.2;varunstable=0.6;varstability=unstable;//Typeofeconomyvarboom=0.02;varflat=0;var

  6. javascript - AngularJs 指令 : call method from parent scope within template - 2

    我对Angular指令还很陌生,我很难让它做我想做的事。这是我所拥有的基础知识:Controller:controller('profileCtrl',function($scope){$scope.editing={'section1':false,'section2':false}$scope.updateProfile=function(){};$scope.cancelProfile=function(){};});指令:directive('editButton',function(){return{restri

  7. javascript - Firefox 扩展自定义字体 - 2

    我正在使用FirefoxAdd-onSDK创建扩展并执行PageMod。此代码位于main.js中。...exports.main=function(){varpageMod=require("sdk/page-mod");pageMod.PageMod({include:"*",contentScriptWhen:'end',contentStyleFile:[self.data.url("css/style.css"),self.data.url("css/font-awesome.css")],con

  8. javascript - JSON.stringify 是否保留数组中对象的顺序 - 2

    我正在创建一个javascript对象,如下所示varmyObjects;for(vari=0;i<10;i++){vareachObject={"id":i};myObjects.push(eachObject);}message={"employeeDetails":myObjects}之后我将它们按如下方式进行字符串化JSON.stringify(message);上述方法是否按照对象之前的顺序对对象进行了字符串化?在stringify之后,它们会像以前一样按0,1,2....9的顺序排列吗? 最佳答案

  9. javascript - `Background size: cover` 填充边框 - 2

    有什么方法可以实现background-size:cover的效果,同时也填充边框后面的区域。为了更好地说明这一点,请看下图:左图使用background-size:cover并整齐地填满整个框本身不管图像是否肖像或风景,但隐藏在半透明的顶部和底部边框后面。第二张图片是使用background-size:auto260px规则创建的,它给出了我想要的效果,但只起作用,因为我知道在这种情况下背景是风景(并且盒子本身是200px和边框30px)。用于渲染上述两个框的JSFiddle可以是found这里。我很难相信这对于纯css是不可能的,但即使是基于javascript的解决方案也是如此(

  10. c# - ASP.NET MVC Razor 获取文本框值 - 2

    如何使用Razor获取文本框的值?<div><inputtype="text"id="somevalue"name="somevalue"class="form-control"/><inputtype="button"value="Search"class="btnbtn-success"/></div><ulid="ReportsList"class="nav">@foreach(

随机推荐

  1. javascript - 如何在 Sequelize.js 中定义对象数组? - 2

    如何在Sequelize.js模型中定义对象数组字段?我需要这样的东西{"profiles":[{"profile_id":10,"profile_pictures":["pic1.jpg","pic2.jpg","pic3.jpg"],"profile_used_id":12},...//moreprofiles]}我检查了docs,但找不到相关的数据类型,我在这里遗漏了什么吗? 最佳答案 我已经成功地通过定义我的模型来

  2. javascript - 如何使用 javascript 将时间戳字符串转换为本地时间? - 2

    我有一个JSP页面,我在其中提取存储在数据库中的时间戳作为字符串,格式为ThuAug21201422:09:23GMT+0530(IndiaStandardTime).当然,我可以按原样在页面中显示它,但是我一直在寻找一种javascript解决方案,它可以让我根据用户的本地时区转换此时间戳。有办法吗?或者对于这样的时间戳是不可能的?非常感谢任何帮助,我的问题可能听起来很愚蠢,因为我仍在熟悉javascript。谢谢 最佳答案 我自己想通了,我能够完成我需要的。将timestamp从数据库传递给varnewDate(timestam

  3. javascript - 为什么 JavaScript 认为 354224848179262000000 和 354224848179261915075 相等? - 2

    这个问题在这里已经有了答案:WhatisJavaScript'shighestintegervaluethatanumbercangotowithoutlosingprecision?(21个答案)关闭8年前。因此,我开始尝试使用递归函数找到第100个斐波那契数,并使用以下代码内存该函数。Function.prototype.memoize=function(){varoriginalFunction=this,slice=Array.prototype.slice;cache={};returnfunction(){varkey=slice.call(arguments);i

  4. javascript - NVD3 - 如何刷新数据功能以在点击时生成新数据 - 2

    我有一个折线图,每次页面刷新时它都会更改数据,这很好,但我需要通过用户点击来刷新。这是因为页面上最终会有其他输入字段,刷新页面会破坏他们当前的session。jsfiddle-http://jsfiddle.net/darcyvoutt/dXtv2/这是创建该行的代码设置:functioneconomyData(){//RoundsvarnumRounds=10;//Stabilityofeconomyvarstable=0.2;varunstable=0.6;varstability=unstable;//Typeofeconomyvarboom=0.02;varflat=0;var

  5. javascript - AngularJs 指令 : call method from parent scope within template - 2

    我对Angular指令还很陌生,我很难让它做我想做的事。这是我所拥有的基础知识:Controller:controller('profileCtrl',function($scope){$scope.editing={'section1':false,'section2':false}$scope.updateProfile=function(){};$scope.cancelProfile=function(){};});指令:directive('editButton',function(){return{restri

  6. javascript - Firefox 扩展自定义字体 - 2

    我正在使用FirefoxAdd-onSDK创建扩展并执行PageMod。此代码位于main.js中。...exports.main=function(){varpageMod=require("sdk/page-mod");pageMod.PageMod({include:"*",contentScriptWhen:'end',contentStyleFile:[self.data.url("css/style.css"),self.data.url("css/font-awesome.css")],con

  7. javascript - JSON.stringify 是否保留数组中对象的顺序 - 2

    我正在创建一个javascript对象,如下所示varmyObjects;for(vari=0;i<10;i++){vareachObject={"id":i};myObjects.push(eachObject);}message={"employeeDetails":myObjects}之后我将它们按如下方式进行字符串化JSON.stringify(message);上述方法是否按照对象之前的顺序对对象进行了字符串化?在stringify之后,它们会像以前一样按0,1,2....9的顺序排列吗? 最佳答案

  8. javascript - `Background size: cover` 填充边框 - 2

    有什么方法可以实现background-size:cover的效果,同时也填充边框后面的区域。为了更好地说明这一点,请看下图:左图使用background-size:cover并整齐地填满整个框本身不管图像是否肖像或风景,但隐藏在半透明的顶部和底部边框后面。第二张图片是使用background-size:auto260px规则创建的,它给出了我想要的效果,但只起作用,因为我知道在这种情况下背景是风景(并且盒子本身是200px和边框30px)。用于渲染上述两个框的JSFiddle可以是found这里。我很难相信这对于纯css是不可能的,但即使是基于javascript的解决方案也是如此(

  9. c# - ASP.NET MVC Razor 获取文本框值 - 2

    如何使用Razor获取文本框的值?<div><inputtype="text"id="somevalue"name="somevalue"class="form-control"/><inputtype="button"value="Search"class="btnbtn-success"/></div><ulid="ReportsList"class="nav">@foreach(

  10. javascript - Angular JS - 如何将 Javascript 对象导出到 XLS 文件? - 2

    实际上,我的Controller中有一个对象,我只是想将该对象导出为.xls或.csv文件。我使用了很多这样的方法:HTML<scriptsrc="https://rawgithub.com/eligrey/FileSaver.js/master/FileSaver.js"type="text/javascript"/><divng-controller="myCtrl"><buttonng-click="exportData()">Export</button><br