koblass
31 Jul 2012, 12:32 AM
Hi,
I've developped a JSON RPC proxy implementation for Ext 4.1.1.
The problem I'm facing is that the method signatures on the backend are different regarding if we load a single record, or a list of records. As Extjs uses in both cases the read method it would be nice to have a special option parameter to be able to identify if we are loading a single record or a list.
Currently I've overwritten the load method of the Ext.data.Model in order to add a "uniqueRecordLoading" parameter. The resulting method looks like this :
Ext.data.Model.load = function(id, config) {
config = Ext.apply({}, config);
config = Ext.applyIf(config, {
action: 'read',
id : id,
uniqueRecordLoading : true // This parameter is needed by the service proxy !
});
var operation = new Ext.data.Operation(config),
scope = config.scope || this,
record = null,
callback;
callback = function(operation) {
if (operation.wasSuccessful()) {
record = operation.getRecords()[0];
Ext.callback(config.success, scope, [record, operation]);
} else {
Ext.callback(config.failure, scope, [record, operation]);
}
Ext.callback(config.callback, scope, [record, operation]);
};
this.proxy.read(operation, callback, this);
};
Best regards
Daniel
I've developped a JSON RPC proxy implementation for Ext 4.1.1.
The problem I'm facing is that the method signatures on the backend are different regarding if we load a single record, or a list of records. As Extjs uses in both cases the read method it would be nice to have a special option parameter to be able to identify if we are loading a single record or a list.
Currently I've overwritten the load method of the Ext.data.Model in order to add a "uniqueRecordLoading" parameter. The resulting method looks like this :
Ext.data.Model.load = function(id, config) {
config = Ext.apply({}, config);
config = Ext.applyIf(config, {
action: 'read',
id : id,
uniqueRecordLoading : true // This parameter is needed by the service proxy !
});
var operation = new Ext.data.Operation(config),
scope = config.scope || this,
record = null,
callback;
callback = function(operation) {
if (operation.wasSuccessful()) {
record = operation.getRecords()[0];
Ext.callback(config.success, scope, [record, operation]);
} else {
Ext.callback(config.failure, scope, [record, operation]);
}
Ext.callback(config.callback, scope, [record, operation]);
};
this.proxy.read(operation, callback, this);
};
Best regards
Daniel