Ext JS 4:在MySQL JS 4.1.1版中的JavaScript异常“TypeError:Ext.resetElement is undefined”

时间:2012-09-07 01:37:28

标签: asp.net proxy extjs

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行)

enter image description here

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;
    }
});

2 个答案:

答案 0 :(得分:3)

确保您使用Ext.onReady(function() { ... })。 ExtJS使用在Ext.resetElement调用之前设置的onReady

答案 1 :(得分:2)

对我有用的另一种解决方法是在使用ext对象之前定义此元素:

Ext.resetElement = Ext.getBody();