Reputation: 245
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" : "[email protected]" },
params: {
To: "[email protected]",
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.
Upvotes: 1
Views: 1385
Reputation: 4431
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: "[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
});
}
});
And call your class like this following:
var myClass = Ext.create('MY.classes.GetItem', {
params: {
p: 'my parameter'
}
});
myClass.request();
Upvotes: 2