weixin_33709219 2012-08-28 13:59 采纳率: 0%
浏览 46

无法扩展Ext.Ajax.request

I created class which extends Ext.Ajax.request but I can run it. I always get error message:

TypeError: me.fireEvent is not a function

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'
    }

});

I call it:

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

Is it possible to call request by extended class at all?

I cannot make it work.

  • 写回答

1条回答 默认 最新

  • weixin_33735077 2012-08-28 14:40
    关注

    That's because you're extending a function, not a class. The class is Ext.Ajax

    You can't extend this either

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

    You could do something like this (NOTE: I haven't tested this so might have bugs):

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

    And call your class like this following:

    var myClass = Ext.create('MY.classes.GetItem', {
        params: {
            p: 'my parameter'
        }
    });
    ​myClass.request();​
    
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能