Ext JS 4.1.1 破坏了我使用 ASP.NET 设置的代理。我不得不切换回 4.1.0 版本来解决这个问题。只是想我会把这个问题扔在那里,直到它被 Sencha 解决。
JavaScript 异常:
“TypeError:Ext.resetElement 未定义”==>“...s.styleProxyEl ||(Ext.AbstractComponent.prototype.styleProxyEl”==> ext-all-debug.js(第 26960 行)
getStyleProxy: function(cls) {
var result = this.styleProxyEl || (Ext.AbstractComponent.prototype.styleProxyEl = Ext.resetElement.createChild({
style: {
position: 'absolute',
top: '-10000px'
}
}, null, true));
result.className = cls;
return result;
},
解决方法:
下载 ExtJS 框架的 4.1.0 版本,而不是使用 4.1.1 版本。
http://cdn.sencha.io/ext-4.1.0-gpl.zip
如果有人可以准确地解释这里发生了什么,我会将他们的答案标记为正确。这是我正在使用的代理。
Ext.define('Ext.ux.AspWebAjaxProxy', {
extend: 'Ext.data.proxy.Ajax',
require: 'Ext.data',
buildRequest: function (operation) {
var params = Ext.applyIf(operation.params || {}, this.extraParams || {}),
request;
params = Ext.applyIf(params, this.getParams(params, operation));
if (operation.id && !params.id) {
params.id = operation.id;
}
params = Ext.JSON.encode(params);
request = Ext.create('Ext.data.Request', {
params: params,
action: operation.action,
records: operation.records,
operation: operation,
url: operation.url
});
request.url = this.buildUrl(request);
operation.request = request;
return request;
}
});