2012-08-28 83 views
1

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

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" : "[email protected]" }, 

    params: { 
     To: "[email protected]", 
     Subject: 'temat', 
     Text: 'wiasomosc' 
    } 

}); 

我把它叫做:

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

是否有可能在所有的调用由扩展类的要求吗?

我不能让它工作。

回答

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: "[email protected]", 
     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();​