gpt4 book ai didi

javascript - 迁移 Ext JS 4 代码库时无法覆盖 Ext.data.proxy.Ajax 实例上的方法 afterRequest

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:23 26 4
gpt4 key购买 nike

背景:我希望能够为 ajax 加载错误创建自定义错误掩码,例如。以防网络问题。

我正在使用以下代码来创建一个新的 Ext JS 存储,我想用我自己的 afterRequest 函数扩展其代理。afterRequest 函数应该发送一个 afterload 事件,该事件由在小部件上调用 mask() 的实用函数使用。

var settingsStore = new Ext.data.Store({
model: 'vmSettings',
autoload: 'true',
proxy: {
type: 'ajax',
url: 'ta-debian-7-wheezy-virtualbox.json',
afterRequest: function(request, success) {
this.fireEvent('afterload', this, request, success);
return;
},
reader: {
type: 'json',
rootProperty: 'variables',
},
}

});

现在这段代码在加载 Ext JS 时出现错误,但在 5.1 上失败并显示消息:无法在 Ext.data.proxy.Ajax 实例上覆盖方法 afterRequest

这里可能出了什么问题?

最佳答案

根据@yellen 的发现,我可以说从 5.1 版开始,添加了严格模式检查以限制函数覆盖。在这种情况下,我认为这可能是一个错误,因为这是一个旨在被覆盖的空回调方法。无论如何,可以通过添加以下内容来通过此检查:$configStrict: false 到代理配置对象。可能他们只是明确声明了这种覆盖。

这就是您的代码的样子:

var settingsStore = new Ext.data.Store({
model: 'vmSettings',
autoload: 'true',
proxy: {
$configStrict: false,
type: 'ajax',
url: 'ta-debian-7-wheezy-virtualbox.json',
afterRequest: function(request, success) {
this.fireEvent('afterload', this, request, success);
return;
},
reader: {
type: 'json',
rootProperty: 'variables',
},
}

});

有关 $configStrict here 的更多信息.

找到一个可用的 fiddle here .

关于javascript - 迁移 Ext JS 4 代码库时无法覆盖 Ext.data.proxy.Ajax 实例上的方法 afterRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29796303/

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