| api : ObjectSpecific urls to call on CRUD action methods "read", "create", "update" and "destroy".
-Defaults to:api: {
+}),
+ And new in Ext version 3, attach centralized event-listeners upon the DataProxy class itself! This is a great place
+to implement a messaging system to centralize your application's user-feedback and error-handling.
+ // Listen to all "beforewrite" event fired by all proxies.
+Ext.data.DataProxy.on('beforewrite', function(proxy, action) {
+ console.log('beforewrite: ', action);
+});
+
+// Listen to "write" event fired by all proxies
+Ext.data.DataProxy.on('write', function(proxy, action, data, res, rs) {
+ console.info('write: ', action);
+});
+
+// Listen to "exception" event fired by all proxies
+Ext.data.DataProxy.on('exception', function(proxy, type, action) {
+ console.error(type + action + ' exception);
+});
+ Note: These three events are all fired with the signature of the corresponding DataProxy instance event beforewrite, write and exception. Config Options|
| api : ObjectSpecific urls to call on CRUD action methods "read", "create", "update" and "destroy".
+Defaults to:api: {
read ... Specific urls to call on CRUD action methods "read", "create", "update" and "destroy".
Defaults to: api: {
read : undefined,
@@ -34,6 +51,24 @@ Defaults to:api: {
update : undefined,
destroy : undefined
}
+The url is built based upon the action being executed [load|create|save|destroy]
+using the commensurate api property, or if undefined default to the
+configured Ext.data.Store.url.
+For example:
+api: {
+ load : '/controller/load',
+ create : '/controller/new', // Server MUST return idProperty of new record
+ save : '/controller/update',
+ destroy : '/controller/destroy_action'
+}
+
+// Alternatively, one can use the object-form to specify each API-action
+api: {
+ load: {url: 'read.php', method: 'GET'},
+ create: 'create.php',
+ destroy: 'destroy.php',
+ save: 'update.php'
+}
If the specific URL for a given CRUD action is undefined, the CRUD action request
will be directed to the configured url.
Note: To modify the URL for an action dynamically the appropriate API
@@ -50,22 +85,9 @@ myStore.on({
// permanent, applying this URL for all subsequent requests.
store.proxy.setUrl('changed1.php', true);
- // manually set the private connection URL.
- // Warning: Accessing the private URL property should be avoided.
- // Use the public method setUrl instead, shown above.
- // It should be noted that changing the URL like this will affect
- // the URL for just this request. Subsequent requests will use the
- // API or URL defined in your initial proxy configuration.
- store.proxy.conn.url = 'changed1.php';
-
- // proxy URL will be superseded by API (only if proxy created to use ajax):
- // It should be noted that proxy API changes are permanent and will
- // be used for all subsequent requests.
- store.proxy.api.load = 'changed2.php';
-
- // However, altering the proxy API should be done using the public
- // method setApi instead.
- store.proxy.setApi('load', 'changed2.php');
+ // Altering the proxy API should be done using the public
+ // method setApi.
+ store.proxy.setApi('read', 'changed2.php');
// Or set the entire API with a config-object.
// When using the config-object option, you must redefine the entire
@@ -79,9 +101,9 @@ myStore.on({
}
}
});
- | DataProxy | | doRequest : Function Abstract method that should be implemented in all subclasses
+ | DataProxy | | doRequest : FunctionAbstract method that should be implemented in all subclasses. Note: Should only be used by custom-proxy developers.
... | DataProxy | | listeners : Object | DataProxy | | listeners : ObjectA config object containing one or more event handlers to be added to this
object during initialization. This should ... A config object containing one or more event handlers to be added to this
object during initialization. This should be a valid listeners config object as specified in the
addListener example for attaching multiple handlers at once.
@@ -136,7 +158,7 @@ Ext.DomObserver = Ext.extend(Object, {
typeAhead: true,
mode: 'local',
triggerAction: 'all'
-}); | Observable | | restful : BooleanDefaults to false. Set to true to operate in a RESTful manner.
+}); | Observable | | onRead : FunctionAbstract method that should be implemented in all subclasses. Note: Should only be used by custom-proxy developers. ... Abstract method that should be implemented in all subclasses. Note: Should only be used by custom-proxy developers. Callback for read action. | DataProxy | | onWrite : FunctionAbstract method that should be implemented in all subclasses. Note: Should only be used by custom-proxy developers. ... Abstract method that should be implemented in all subclasses. Note: Should only be used by custom-proxy developers. Callback for create, update and destroy actions. | DataProxy | | restful : BooleanDefaults to false. Set to true to operate in a RESTful manner.
Note: this parameter will automatically be set to t... Defaults to false. Set to true to operate in a RESTful manner.
Note: this parameter will automatically be set to true if the
Ext.data.Store it is plugged into is set to restful: true . If the
@@ -148,7 +170,7 @@ actions sent to one url based upon the HTTP method, for example:
proxy: new Ext.data.HttpProxy({url:'/users'}); // all requests sent to /users
...
)}
-There is no api specified in the configuration of the proxy,
+If there is no api specified in the configuration of the proxy,
all requests will be marshalled to a single RESTful url (/users) so the serverside
framework can inspect the HTTP Method and act accordingly:
@@ -157,10 +179,22 @@ POST /users create
GET /users read
PUT /users/23 update
DESTROY /users/23 delete
- | DataProxy |
Public PropertiesThis class has no public properties. Public Methods|
| addEvents( Object object )
- :
- voidUsed to define events on this Observable Used to define events on this Observable | Observable | | addListener( String eventName , Function handler , [Object scope ], [Object options ] )
- :
+
+If set to true, a non-phantom record's
+id will be appended to the url. Some MVC (e.g., Ruby on Rails,
+Merb and Django) support segment based urls where the segments in the URL follow the
+Model-View-Controller approach: someSite.com/controller/action/id
+Where the segments in the url are typically:
+- The first segment : represents the controller class that should be invoked.
+- The second segment : represents the class function, or method, that should be called.
+- The third segment : represents the ID (a variable typically passed to the method).
+
+
Refer to Ext.data.DataProxy.api for additional information. | DataProxy |
Public PropertiesThis class has no public properties. Public Methods|
| addEvents( Object|String o , string Optional. )
+ :
+ voidAdds the specified events to the list of events which this Observable may fire. Adds the specified events to the list of events which this Observable may fire. | Observable | | addListener( String eventName , Function handler , [Object scope ], [Object options ] )
+ :
voidAppends an event handler to this object. Appends an event handler to this object. Parameters:eventName : StringThe name of the event to listen for. handler : FunctionThe method the event invokes. scope : Object(optional) The scope (this reference) in which the handler function is executed.
If omitted, defaults to the object which fired the event. options : Object(optional) An object containing handler configuration.
properties. This may contain any of the following properties:
@@ -180,8 +214,8 @@ Using the options argument, it is possible to combine different types of listene
A delayed, one-time listener.
myDataView.on('click', this.onClick, this, {
- single: true,
- delay: 100
+single: true,
+delay: 100
});
Attaching multiple handlers in 1 call
@@ -189,66 +223,98 @@ The method also allows for a single argument to be passed which is a config obje
which specify multiple handlers.
myGridPanel.on({
- 'click' : {
- fn: this.onClick,
- scope: this,
- delay: 100
- },
- 'mouseover' : {
- fn: this.onMouseOver,
- scope: this
- },
- 'mouseout' : {
- fn: this.onMouseOut,
- scope: this
- }
+'click' : {
+ fn: this.onClick,
+ scope: this,
+ delay: 100
+},
+'mouseover' : {
+ fn: this.onMouseOver,
+ scope: this
+},
+'mouseout' : {
+ fn: this.onMouseOut,
+ scope: this
+}
});
Or a shorthand syntax:
myGridPanel.on({
- 'click' : this.onClick,
- 'mouseover' : this.onMouseOver,
- 'mouseout' : this.onMouseOut,
- scope: this
-});
Returns: | Observable | | destroy()
- :
- voidDestroys the proxy by purging any event listeners and cancelling any active requests. Destroys the proxy by purging any event listeners and cancelling any active requests. | DataProxy | | enableBubble( Object events )
- :
- voidUsed to enable bubbling of events Used to enable bubbling of events | Observable | | fireEvent( String eventName , Object... args )
- :
- BooleanFires the specified event with the passed parameters (minus the event name).
+'click' : this.onClick,
+'mouseover' : this.onMouseOver,
+'mouseout' : this.onMouseOut,
+ scope: this
+}); Returns: | Observable | | destroy()
+ :
+ voidDestroys the proxy by purging any event listeners and cancelling any active requests. Destroys the proxy by purging any event listeners and cancelling any active requests. | DataProxy | | enableBubble( String/Array events )
+ :
+ voidEnables events fired by this Observable to bubble up an owner hierarchy by calling
+this.getBubbleTarget() if present... Enables events fired by this Observable to bubble up an owner hierarchy by calling
+this.getBubbleTarget() if present. There is no implementation in the Observable base class.
+ This is commonly used by Ext.Components to bubble events to owner Containers. See Ext.Component.getBubbleTarget. The default
+implementation in Ext.Component returns the Component's immediate owner. But if a known target is required, this can be overridden to
+access the required target more quickly.
+ Example: Ext.override(Ext.form.Field, {
+ // Add functionality to Field's initComponent to enable the change event to bubble
+ initComponent : Ext.form.Field.prototype.initComponent.createSequence(function() {
+ this.enableBubble('change');
+ }),
+
+ // We know that we want Field's events to bubble directly to the FormPanel.
+ getBubbleTarget : function() {
+ if (!this.formPanel) {
+ this.formPanel = this.findParentByType('form');
+ }
+ return this.formPanel;
+ }
+});
+
+var myForm = new Ext.formPanel({
+ title: 'User Details',
+ items: [{
+ ...
+ }],
+ listeners: {
+ change: function() {
+ // Title goes red if form has been modified.
+ myForm.header.setStyle('color', 'red');
+ }
+ }
+});
| Observable | | fireEvent( String eventName , Object... args )
+ :
+ BooleanFires the specified event with the passed parameters (minus the event name).
An event may be set to bubble up an Obse... | Observable | | hasListener( String eventName )
- :
- BooleanChecks to see if this object has any listeners for a specified event Checks to see if this object has any listeners for a specified event | Observable | | isApiAction( String [Ext.data.Api.CREATE|READ|UPDATE|DESTROY]} )
- :
- BooleanReturns true if the specified action is defined as a unique action in the api-config.
+by calling enableBubble. | Observable | | hasListener( String eventName )
+ :
+ BooleanChecks to see if this object has any listeners for a specified event Checks to see if this object has any listeners for a specified event | Observable | | isApiAction( String [Ext.data.Api.CREATE|READ|UPDATE|DESTROY]} )
+ :
+ BooleanReturns true if the specified action is defined as a unique action in the api-config.
request. If all API-actions a... Returns true if the specified action is defined as a unique action in the api-config.
request. If all API-actions are routed to unique urls, the xaction parameter is unecessary. However, if no api is defined
and all Proxy actions are routed to DataProxy#url, the server-side will require the xaction parameter to perform a switch to
-the corresponding code for CRUD action. Parameters:[Ext.data.Api.CREATE|READ|UPDATE|DESTROY]} : Stringaction Returns: | DataProxy | | load( Object params , Object reader , Object callback , Object scope , Object arg )
- :
- voidDeprecated load method using old method signature. See {@doRequest} for preferred method. Deprecated load method using old method signature. See {@doRequest} for preferred method. Parameters:params : Objectreader : Objectcallback : Objectscope : Objectarg : Object Returns: | DataProxy | | on( String eventName , Function handler , [Object scope ], [Object options ] )
- :
+the corresponding code for CRUD action.Parameters:[Ext.data.Api.CREATE|READ|UPDATE|DESTROY]} : Stringaction Returns: | DataProxy | | load( Object params , Object reader , Object callback , Object scope , Object arg )
+ :
+ voidDeprecated load method using old method signature. See {@doRequest} for preferred method. Deprecated load method using old method signature. See {@doRequest} for preferred method. Parameters:params : Objectreader : Objectcallback : Objectscope : Objectarg : Object Returns: | DataProxy | | on( String eventName , Function handler , [Object scope ], [Object options ] )
+ :
voidAppends an event handler to this object (shorthand for addListener.) Appends an event handler to this object (shorthand for addListener.) Parameters:eventName : StringThe type of event to listen for handler : FunctionThe method the event invokes scope : Object(optional) The scope (this reference) in which the handler function is executed.
-If omitted, defaults to the object which fired the event. options : Object(optional) An object containing handler configuration. Returns: | Observable | | purgeListeners()
- :
- voidRemoves all listeners for this object Removes all listeners for this object | Observable | | relayEvents( Object o , Array events )
- :
- voidRelays selected events from the specified Observable as if the events were fired by this. Relays selected events from the specified Observable as if the events were fired by this. | Observable | | removeListener( String eventName , Function handler , [Object scope ] )
- :
- voidRemoves an event handler. Removes an event handler. | Observable | | request( String action , Ext.data.Record/Ext.data.Record[]/null rs , Object params , Ext.data.DataReader reader , Function callback , Object scope , Object options )
- :
- voidAll proxy actions are executed through this method. Automatically fires the "before" + action event All proxy actions are executed through this method. Automatically fires the "before" + action event | DataProxy | | resumeEvents()
- :
- voidResume firing events. (see suspendEvents)
-If events were suspended using the queueSuspended parameter, then all
+If omitted, defaults to the object which fired the event. options : Object(optional) An object containing handler configuration. Returns: | Observable | | purgeListeners()
+ :
+ voidRemoves all listeners for this object Removes all listeners for this object | Observable | | relayEvents( Object o , Array events )
+ :
+ voidRelays selected events from the specified Observable as if the events were fired by this. Relays selected events from the specified Observable as if the events were fired by this. | Observable | | removeListener( String eventName , Function handler , [Object scope ] )
+ :
+ voidRemoves an event handler. Removes an event handler. | Observable | | request( String action , Ext.data.Record/Ext.data.Record[]/null rs , Object params , Ext.data.DataReader reader , Function callback , Object scope , Object options )
+ :
+ voidAll proxy actions are executed through this method. Automatically fires the "before" + action event All proxy actions are executed through this method. Automatically fires the "before" + action event | DataProxy | | resumeEvents()
+ :
+ voidResume firing events. (see suspendEvents)
+If events were suspended using the queueSuspended parameter, then all
event... Resume firing events. (see suspendEvents)
If events were suspended using the queueSuspended parameter, then all
-events fired during event suspension will be sent to any listeners now. | Observable | | setApi( String/Object api , String/Function url )
- :
- voidRedefines the Proxy's API or a single action of an API. Can be called with two method signatures.
+events fired during event suspension will be sent to any listeners now. | Observable | | setApi( String/Object api , String/Function url )
+ :
+ voidRedefines the Proxy's API or a single action of an API. Can be called with two method signatures.
If called with an ... Redefines the Proxy's API or a single action of an API. Can be called with two method signatures.
If called with an object as the only parameter, the object should redefine the entire API, e.g.: proxy.setApi({
read : '/users/read',
@@ -257,24 +323,29 @@ If called with an ...
Redefines the Proxy's API or a s
destroy : '/users/destroy'
});
If called with two parameters, the first parameter should be a string specifying the API action to
-redefine and the second parameter should be the URL (or function if using DirectProxy) to call for that action, e.g.: proxy.setApi(Ext.data.Api.actions.read, '/users/new_load_url');
Parameters:api : String/ObjectAn API specification object, or the name of an action. url : String/FunctionThe URL (or function if using DirectProxy) to call for the action. Returns: | DataProxy | | suspendEvents( Boolean queueSuspended )
- :
+redefine and the second parameter should be the URL (or function if using DirectProxy) to call for that action, e.g.:proxy.setApi(Ext.data.Api.actions.read, '/users/new_load_url');
Parameters:api : String/ObjectAn API specification object, or the name of an action. url : String/FunctionThe URL (or function if using DirectProxy) to call for the action. Returns: | DataProxy | | suspendEvents( Boolean queueSuspended )
+ :
voidSuspend the firing of all events. (see resumeEvents) Suspend the firing of all events. (see resumeEvents) Parameters:queueSuspended : BooleanPass as true to queue up suspended events to be fired
-after the resumeEvents call instead of discarding all suspended events; Returns: | Observable | | un( String eventName , Function handler , [Object scope ] )
- :
- voidRemoves an event handler (shorthand for removeListener.) | Observable |
Public Events|
| beforeload :
- ( DataProxy this , Object params )
- Fires before a request to retrieve a data object. Fires before a request to retrieve a data object. Listeners will be called with the following arguments: | DataProxy | | beforewrite :
- ( DataProxy this , String action , Record/Array[Record] rs , Object params )
- Fires before a request is generated for one of the actions Ext.data.Api.actions.create|update|destroy Fires before a request is generated for one of the actions Ext.data.Api.actions.create|update|destroy Listeners will be called with the following arguments:this : DataProxyThe proxy for the request action : String[Ext.data.Api.actions.create|update|destroy] rs : Record/Array[Record]The Record(s) to create|update|destroy. params : ObjectThe request params object. Edit params to add parameters to the request.
| DataProxy | | exception :
- ( DataProxy this , String type , String action , Object options , Object response , Mixed arg )
- Fires if an exception occurs in the Proxy during a remote request.
-This event is relayed through a corresponding
-Ex... Fires if an exception occurs in the Proxy during a remote request.
-This event is relayed through a corresponding
-Ext.data.Store.exception,
-so any Store instance may observe this event.
-This event can be fired for one of two reasons:
+after the resumeEvents call instead of discarding all suspended events; Returns: | Observable | | un( String eventName , Function handler , [Object scope ] )
+ :
+ voidRemoves an event handler (shorthand for removeListener.) | Observable |
Public Events|
| beforeload :
+ ( DataProxy this , Object params )
+ Fires before a request to retrieve a data object. Fires before a request to retrieve a data object. Listeners will be called with the following arguments: | DataProxy | | beforewrite :
+ ( DataProxy this , String action , Record/Array[Record] rs , Object params )
+ Fires before a request is generated for one of the actions Ext.data.Api.actions.create|update|destroy
+In addition to... Fires before a request is generated for one of the actions Ext.data.Api.actions.create|update|destroy
+ In addition to being fired through the DataProxy instance that raised the event, this event is also fired
+through the Ext.data.DataProxy class to allow for centralized processing of beforewrite events from all
+DataProxies by attaching a listener to the Ext.data.Proxy class itself. Listeners will be called with the following arguments:this : DataProxyThe proxy for the request action : String[Ext.data.Api.actions.create|update|destroy] rs : Record/Array[Record]The Record(s) to create|update|destroy. params : ObjectThe request params object. Edit params to add parameters to the request.
| DataProxy | | exception :
+ ( DataProxy this , String type , String action , Object options , Object response , Mixed arg )
+ Fires if an exception occurs in the Proxy during a remote request. This event is relayed
+through a corresponding Ext... Fires if an exception occurs in the Proxy during a remote request. This event is relayed
+through a corresponding Ext.data.Store.exception,
+so any Store instance may observe this event.
+ In addition to being fired through the DataProxy instance that raised the event, this event is also fired
+through the Ext.data.DataProxy class to allow for centralized processing of exception events from all
+DataProxies by attaching a listener to the Ext.data.Proxy class itself.
+ This event can be fired for one of two reasons:
- remote-request failed :
The server did not return status === 200.
@@ -320,13 +391,17 @@ If the remote request returns success===false, this parameter will be null.
This parameter will only exist if the action was a write action
(Ext.data.Api.actions.create|update|destroy).
- | DataProxy | | load :
- ( DataProxy this , Object o , Object options )
- Fires before the load method's callback is called. Fires before the load method's callback is called. Listeners will be called with the following arguments: | DataProxy | | loadexception :
- ( misc misc )
- This event is deprecated. The signature of the loadexception event
+ | DataProxy | | load :
+ ( DataProxy this , Object o , Object options )
+ Fires before the load method's callback is called. Fires before the load method's callback is called. Listeners will be called with the following arguments: | DataProxy | | loadexception :
+ ( misc misc )
+ This event is deprecated. The signature of the loadexception event
varies depending on the proxy, use the catch-all... This event is deprecated. The signature of the loadexception event
varies depending on the proxy, use the catch-all exception event instead.
-This event will fire in addition to the exception event. Listeners will be called with the following arguments: | DataProxy | | write :
- ( DataProxy this , String action , Object data , Object response , Record/Record{} rs , Object options )
- Fires before the request-callback is called Fires before the request-callback is called Listeners will be called with the following arguments:this : DataProxyThe proxy that sent the request action : String[Ext.data.Api.actions.create|upate|destroy] data : ObjectThe data object extracted from the server-response response : ObjectThe decoded response from server rs : Record/Record{}The records from Store options : ObjectThe callback's options property as passed to the request function
| DataProxy |
\ No newline at end of file
+This event will fire in addition to the exception event.Listeners will be called with the following arguments: | DataProxy |