gpt4 book ai didi

javascript - Ext.Defer 给出 getAsynchronousLoad 错误

转载 作者:行者123 更新时间:2023-11-30 14:48:58 25 4
gpt4 key购买 nike

我刚刚定义了一个组合框。首先,它加载一个国家/地区列表,当选择一个值时,它会触发一个change事件,该事件在搜索服务中对数据库进行ajax查询;

事情;当我单击并打开组合框项目时,此配置效果很好。但是当我在组合框的字段中输入时,它会触发监听器的 store.load 并且由于尚未选择任何国家/地区,搜索查询 url 当然会给出未找到的错误。

{
xtype: 'countrycombo',
itemId: 'countryName',
name:'country',
afterLabelTextTpl: MyApp.Globals.required,
allowBlank: false,
flex: 1,
// forceSelection: false,
// typeAhead: true,
// typeAheadDelay: 50,
store: {
proxy: {
type: 'ajax',
// isSynchronous: true,
url: MyApp.Globals.getUrl() + '/country/list?limit=250',
// timeout: 300000,
reader: {
type: 'json',
rootProperty: 'data'
}
},
pageSize: 0,
sorters: 'description',
autoLoad: true
}
,
listeners: {
change: function (combo, countryId) {
var cityStore = Ext.getStore('cityCombo');
cityStore.getProxy()
.setUrl(MyAppp.Globals.getUrl() + '/city/view/search?query=countryid:'+ countryId);
// Ext.defer(cityStore.load, 100);
cityStore.load();
}
}
},

如您在上面的代码中看到的那样,我已经尝试了几种方法,以便在向组合框文本字段键入期间为 load 设置延迟/超时; Ext.defer,代理上的timeout配置,组合上的typeAhead配置,但都没有用!

我认为 Ext.defer 是最好的解决方案,但它给出了这个错误:

未捕获的类型错误:me.getAsynchronousLoad 不是加载时的函数 (ProxyStore.js?_dc=15169)

如何为组合框设置延迟/超时以触发 load 函数?

最佳答案

代替 Ext.defer(cityStore.load, 100);

尝试使用这个:

Ext.defer(function(){

cityStore.load

}, 300);

如果这确实有效,请尝试增加延迟

或者你可以在加载之前放一个逻辑

像这样:

if(countryId.length == 5){

cityStore.load

}

这将确保您在加载前输入了正确的值

希望这对您有所帮助,祝您的项目顺利

关于javascript - Ext.Defer 给出 getAsynchronousLoad 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48457553/

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