1

我创建了扩展 Ext.Ajax.request 的类,但我可以运行它。我总是收到错误消息:

TypeError:me.fireEvent 不是函数

if (me.fireEvent('beforerequest', me, options) !== false) { 

Ext.define('MY.classes.GetItem', {
    extend: 'Ext.Ajax.request', 

    url: 'getItems.php',
    method : 'GET',
    timeout: 30000, 

    success: function (response, opts){
        alert('email sent succ!');
    },

    failure: function (response, opts){
        alert('email request fail! ' + response.status);
        //var jsonResp = Ext.util.JSON.decode(response.responseText)
        //Ext.Msg.alert("Error",jsonResp.error);
    },

    // headers: {'Content-Type': 'application/json'},
    // jsonData: {"emailId" : "admin@psiloc.com" },

    params: {
        To: "arek@ooo.com",
        Subject: 'temat',
        Text: 'wiasomosc'
    }

});

我称之为:

var p =  {id: itemId};
        var req = Ext.create('MY.classes.GetItem');
        req.request( {params : p} );

是否可以通过扩展类调用请求?

我不能让它工作。

4

1 回答 1

2

那是因为你在扩展一个函数,而不是一个类。类是 Ext.Ajax

你也不能扩展它

Ext.define('...', {

     extend: 'Ext.window.Window.show',
});

你可以做这样的事情(注意:我没有测试过这个,所以可能有错误):

Ext.define('MY.classes.GetItem', {

    url: 'getItems.php',
    method: 'GET',
    timeout: 30000,

    constructor: function() {
        var me = this;

        Ext.apply(me, config);

        me.callParent();
    },

    success: function(response, opts) {
        alert('email sent succ!');
    },

    failure: function(response, opts) {
        alert('email request fail! ' + response.status);
    },

    params: {
        To: "arek@ooo.com",
        Subject: 'temat',
        Text: 'wiasomosc'
    },

    request: function() {
        var me = this;
        Ext.Ajax.request({
            success: me.success,
            failure: me.failure,
            url: me.url,
            method: me.method,
            params: me.params
        });
    }
});​

并像这样调用你的类:

var myClass = Ext.create('MY.classes.GetItem', {
    params: {
        p: 'my parameter'
    }
});
​myClass.request();​
于 2012-08-28T14:40:04.500 回答