2012-08-28 41 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();​