我有一个Extjs应用程序,它使用了很多组合框(带有附加的服务调用)。 这些组合中的每一个都附加了一个休息存储,为其提供了从服务器获取数据的方法。
我的问题是,即使所有商店的autoLoad都为false,这些组合框的每个实例都有多个休息调用。
我想:
找到一种方法将商店限制为仅1次通话(按配置) - 不需要超过1次通话,数据不会经常改变
在第一次加载后找到一种方法将商店的代理从静态代理更改为内存代理 - 这将允许组合执行尽可能多的load()它想要的,将不再有对服务器的调用。
修改 为了说明我的组合是如何创建的:
Ext.define('SelectBox', {
extend : 'Ext.form.field.ComboBox',
alias : 'widget.selectBox',
editable : false,
allowBlank : true,
displayField : 'label',
valueField : 'value',
forceSelection : true,
minChars : 1,
queryMode: "local" //added this after the answer was given
});
我打电话给他们:
{
xtype:"selectBox",
store: "someStore"
}
答案 0 :(得分:1)
您必须将组合的queryMode
设置为local,以便在客户端进行过滤操作。无需乱用代理。你的组合也会变得更具反应性!
请参阅this previous answer第二部分中的示例。
为此,您还必须确保存储的remoteFilter
(以及可能的remoteSort
)选项设置为false。