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 に答える