Ext.data.Store
Hierarchy
Ext.BaseExt.data.AbstractStoreExt.data.StoreInherited mixins
Requires
Subclasses
Uses
Files
The Store class encapsulates a client side cache of Model objects. Stores load data via a Proxy, and also provide functions for sorting, filtering and querying the model instances contained within it.
Creating a Store is easy - we just tell it the Model and the Proxy to use to load and save its data:
// Set up a model to use in our Store
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'firstName', type: 'string'},
{name: 'lastName', type: 'string'},
{name: 'age', type: 'int'},
{name: 'eyeColor', type: 'string'}
]
});
var myStore = Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url: '/users.json',
reader: {
type: 'json',
root: 'users'
}
},
autoLoad: true
});
In the example above we configured an AJAX proxy to load data from the url '/users.json'. We told our Proxy to use a JsonReader to parse the response from the server into Model object - see the docs on JsonReader for details.
Inline data
Stores can also load data inline. Internally, Store converts each of the objects we pass in as data into Model instances:
Ext.create('Ext.data.Store', {
model: 'User',
data : [
{firstName: 'Ed', lastName: 'Spencer'},
{firstName: 'Tommy', lastName: 'Maintz'},
{firstName: 'Aaron', lastName: 'Conran'},
{firstName: 'Jamie', lastName: 'Avins'}
]
});
Loading inline data using the method above is great if the data is in the correct format already (e.g. it doesn't need to be processed by a reader). If your inline data requires processing to decode the data structure, use a MemoryProxy instead (see the MemoryProxy docs for an example).
Additional data can also be loaded locally using add.
Dynamic Loading
Stores can be dynamically updated by calling the load method:
store.load({
params: {
group: 3,
type: 'user'
},
callback: function(records, operation, success) {
// do something after the load finishes
},
scope: this
});
Here a bunch of arbitrary parameters is passed along with the load request and a callback function is set up to do something after the loading is over.
Loading Nested Data
Applications often need to load sets of associated data - for example a CRM system might load a User and her Orders. Instead of issuing an AJAX request for the User and a series of additional AJAX requests for each Order, we can load a nested dataset and allow the Reader to automatically populate the associated models. Below is a brief example, see the Ext.data.reader.Reader intro docs for a full explanation:
var store = Ext.create('Ext.data.Store', {
autoLoad: true,
model: "User",
proxy: {
type: 'ajax',
url: 'users.json',
reader: {
type: 'json',
root: 'users'
}
}
});
Which would consume a response like this:
{
"users": [{
"id": 1,
"name": "Ed",
"orders": [{
"id": 10,
"total": 10.76,
"status": "invoiced"
},{
"id": 11,
"total": 13.45,
"status": "shipped"
}]
}]
}
See the Ext.data.reader.Reader intro docs for a full explanation.
Filtering and Sorting
Stores can be sorted and filtered - in both cases either remotely or locally. The sorters and filters are held inside MixedCollection instances to make them easy to manage. Usually it is sufficient to either just specify sorters and filters in the Store configuration or call sort or filter:
var store = Ext.create('Ext.data.Store', {
model: 'User',
sorters: [{
property: 'age',
direction: 'DESC'
}, {
property: 'firstName',
direction: 'ASC'
}],
filters: [{
property: 'firstName',
value: /Ed/
}]
});
The new Store will keep the configured sorters and filters in the MixedCollection instances mentioned above. By default, sorting and filtering are both performed locally by the Store - see remoteSort and remoteFilter to allow the server to perform these operations instead.
Filtering and sorting after the Store has been instantiated is also easy. Calling filter adds another filter to the Store and automatically filters the dataset (calling filter with no arguments simply re-applies all existing filters). Note that by default sortOnFilter is set to true, which means that your sorters are automatically reapplied if using local sorting.
store.filter('eyeColor', 'Brown');
Change the sorting at any time by calling sort:
store.sort('height', 'ASC');
Note that all existing sorters will be removed in favor of the new sorter data (if sort is called with no arguments, the existing sorters are just reapplied instead of being removed). To keep existing sorters and add new ones, just add them to the MixedCollection:
store.sorters.add(new Ext.util.Sorter({
property : 'shoeSize',
direction: 'ASC'
}));
store.sort();
Registering with StoreManager
Any Store that is instantiated with a storeId will automatically be registered with the StoreManager. This makes it easy to reuse the same store in multiple views:
//this store can be used several times
Ext.create('Ext.data.Store', {
model: 'User',
storeId: 'usersStore'
});
new Ext.List({
store: 'usersStore',
//other config goes here
});
new Ext.view.View({
store: 'usersStore',
//other config goes here
});
Further Reading
Stores are backed up by an ecosystem of classes that enables their operation. To gain a full understanding of these pieces and how they fit together, see:
- Proxy - overview of what Proxies are and how they are used
- Model - the core class in the data package
- Reader - used by any subclass of ServerProxy to read a response
Available since: 1.1.0
Config options
If data is not specified, and if autoLoad is true or an Object, this store's load method is automatically called after creation. If the value of autoLoad is an Object, this Object will be passed to the store's load method.
Available since: 2.3.0
True to automatically sync the Store with its Proxy after every edit to one of its Records. Defaults to false.
Defaults to: false
Available since: 4.0.0
Sets the updating behavior based on batch synchronization. 'operation' (the default) will update the Store's internal representation of the data after each operation of the batch has completed, 'complete' will wait until the entire batch has been completed before updating the Store's data. 'complete' is a good choice for local storage proxies, 'operation' is better for remote proxies, where there is a comparatively high latency.
Defaults to: 'operation'
Available since: 4.1.1
Allows the Store to prefetch and cache in a page cache, pages of Records, and to then satisfy loading requirements from this page cache.
To use buffered Stores, initiate the process by loading the first page. The number of rows rendered are determined automatically, and the range of pages needed to keep the cache primed for scrolling is requested and cached. Example:
myStore.loadPage(1); // Load page 1
A PagingScroller is instantiated which will monitor the scrolling in the grid, and refresh the view's rows from the page cache as needed. It will also pull new data into the page cache when scrolling of the view draws upon data near either end of the prefetched data.
The margins which trigger view refreshing from the prefetched data are Ext.grid.PagingScroller.numFromEdge, Ext.grid.PagingScroller.leadingBufferZone and Ext.grid.PagingScroller.trailingBufferZone.
The margins which trigger loading more data into the page cache are, leadingBufferZone and trailingBufferZone.
By default, only 5 pages of data are cached in the page cache, with pages "scrolling" out of the buffer as the view moves down through the dataset. Setting this value to zero means that no pages are ever scrolled out of the page cache, and that eventually the whole dataset may become present in the page cache. This is sometimes desirable as long as datasets do not reach astronomical proportions.
Selection state may be maintained across page boundaries by configuring the SelectionModel not to discard records from its collection when those Records cycle out of the Store's primary collection. This is done by configuring the SelectionModel like this:
selModel: {
pruneRemoved: false
}
Defaults to: false
Available since: 4.0.0
True to empty the store when loading another page via loadPage, nextPage or previousPage. Setting to false keeps existing records, allowing large data sets to be loaded one page at a time but rendered all together.
Defaults to: true
Available since: 4.0.0
true to clear anything in the removed record collection when the store loads.
Defaults to: true
Available since: 4.1.0
Array of Model instances or data objects to load locally. See "Inline data" above for details.
Available since: 1.1.0
The default sort direction to use if one is not specified.
Defaults to: "ASC"
Available since: Ext JS 4.1.3
This may be used in place of specifying a model configuration. The fields should be a set of Ext.data.Field configuration objects. The store will automatically create a Ext.data.Model with these fields. In general this configuration option should only be used for simple stores like a two-field store of ComboBox. For anything more complicated, such as specifying a particular id property or associations, a Ext.data.Model should be defined and specified for the model config.
Available since: 2.3.0
If true, any filters attached to this Store will be run after loading data, before the datachanged event is fired. Defaults to true, ignored if remoteFilter is true
Defaults to: true
Available since: 4.1.1
The direction in which sorting should be applied when grouping. Supported values are "ASC" and "DESC".
Defaults to: "ASC"
Available since: 4.1.0
When buffered, the number of extra rows to keep cached on the leading side of scrolling buffer as scrolling proceeds. A larger number means fewer replenishments from the server.
Defaults to: 200
Available since: 4.1.0
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.
DOM events from Ext JS Components
While some Ext JS Component classes export selected DOM events (e.g. "click", "mouseover" etc), this is usually
only done when extra value can be added. For example the DataView's itemclick event passing the node clicked on. To access DOM events directly from a
child element of a Component, we need to specify the element option to identify the Component property to add a
DOM listener to:
new Ext.panel.Panel({
width: 400,
height: 200,
dockedItems: [{
xtype: 'toolbar'
}],
listeners: {
click: {
element: 'el', //bind to the underlying el property on the panel
fn: function(){ console.log('click el'); }
},
dblclick: {
element: 'body', //bind to the underlying body property on the panel
fn: function(){ console.log('dblclick body'); }
}
}
});
Available since: 1.1.0
Name of the Model associated with this store. The string is used as an argument for Ext.ModelManager.getModel.
Available since: 4.0.4
The number of records considered to form a 'page'. This is used to power the built-in paging using the nextPage and previousPage functions when the grid is paged using a PagingScroller Defaults to 25.
If this Store is buffered, pages are loaded into a page cache before the Store's data is updated from the cache. The pageSize is the number of rows loaded into the cache in one request. This will not affect the rendering of a buffered grid, but a larger page size will mean fewer loads.
In a buffered grid, scrolling is monitored, and the page cache is kept primed with data ahead of the direction of scroll to provide rapid access to data when scrolling causes it to be required. Several pages in advance may be requested depending on various parameters.
It is recommended to tune the pageSize, trailingBufferZone and leadingBufferZone configurations based upon the conditions pertaining in your deployed application.
The provided SDK example examples/grid/infinite-scroll-grid-tuner.html can be used to experiment with
different settings including simulating Ajax latency.
Available since: 4.0.1
The Proxy to use for this Store. This can be either a string, a config object or a Proxy instance - see setProxy for details.
Available since: 1.1.0
Valid only when used with a buffered Store.
The number of pages additional to the required buffered range to keep in the prefetch cache before purging least recently used records.
For example, if the height of the view area and the configured trailingBufferZone and leadingBufferZone require that there
are three pages in the cache, then a purgePageCount of 5 ensures that up to 8 pages can be in the page cache any any one time.
A value of 0 indicates to never purge the prefetched data.
Defaults to: 5
Available since: 4.0.0
True to defer any filtering operation to the server. If false, filtering is done locally on the client.
Defaults to: false
Available since: 4.0.0
Overrides: Ext.data.AbstractStore.remoteFilter
true if the grouping should apply on the server side, false if it is local only. If the
grouping is local, it can be applied immediately to the data. If it is remote, then it will simply act as a
helper, automatically sending the grouping information to the server.
Defaults to: false
Available since: 4.0.0
True to defer any sorting operation to the server. If false, sorting is done locally on the client.
Defaults to: false
Available since: 1.1.0
Overrides: Ext.data.AbstractStore.remoteSort
If true, any sorters attached to this Store will be run after loading data, before the datachanged event is fired. Defaults to true, igored if remoteSort is true
Defaults to: true
Available since: 4.1.1
The property in each item that contains the data to sort.
The property in each item that contains the data to sort.
Available since: Ext JS 4.1.3
Unique identifier for this store. If present, this Store will be registered with the Ext.data.StoreManager, making it easy to reuse elsewhere.
Note that when store is instatiated by Controller, the storeId will be overridden by the name of the store.
Available since: 4.0.0
When buffered, the number of extra records to keep cached on the trailing side of scrolling buffer as scrolling proceeds. A larger number means fewer replenishments from the server.
Defaults to: 25
Available since: 4.1.0
Properties
Instance Properties addRecordsOptions : ObjectprivatePrivate. ...Private. Used as parameter to loadRecords
Defaults to: {addRecords: true}
Available since: 4.1.1
The page that the Store has most recently loaded (see loadPage) ...The page that the Store has most recently loaded (see loadPage)
Defaults to: 1
Available since: 4.0.0
The MixedCollection that holds this store's local cache of records.
The MixedCollection that holds this store's local cache of records.
Available since: 4.0.0
The string type of the Proxy to create if none is specified. ...The string type of the Proxy to create if none is specified. This defaults to creating a
memory proxy.
Defaults to: 'memory'
Available since: 4.0.0
defaultViewSize : Number★privateNumber of records to load into a buffered grid before it has been bound to a view of known size ...Number of records to load into a buffered grid before it has been bound to a view of known size
Defaults to: 100
Available since: Ext JS 4.1.3
eventsSuspended : NumberprivateInitial suspended call count. ...Initial suspended call count. Incremented when suspendEvents is called, decremented when resumeEvents is called.
Defaults to: 0
Available since: 4.1.1
hasListeners : ObjectreadonlyThis object holds a key for any event that has a listener. ...This object holds a key for any event that has a listener. The listener may be set
directly on the instance, or on its class or a super class (via observe) or
on the MVC EventBus. The values of this object are truthy
(a non-zero number) and falsy (0 or undefined). They do not represent an exact count
of listeners. The value for an event is truthy if the event must be fired and is
falsy if there is no need to fire the event.
The intended use of this property is to avoid the expense of fireEvent calls when
there are no listeners. This can be particularly helpful when one would otherwise
have to call fireEvent hundreds or thousands of times. It is used like this:
if (this.hasListeners.foo) {
this.fireEvent('foo', this, arg1);
}
Available since: 4.1.0
implicitModel : BooleanprivateTrue if a model was created implicitly for this Store. ...True if a model was created implicitly for this Store. This happens if a fields array is passed to the Store's
constructor instead of a model constructor or name.
Defaults to: false
Available since: 4.0.0
True if the Store has already been destroyed. ...True if the Store has already been destroyed. If this is true, the reference to Store should be deleted
as it will not function correctly any more.
Defaults to: false
Available since: 3.4.0
true in this class to identify an object as an instantiated Observable, or subclass thereof. ...true in this class to identify an object as an instantiated Observable, or subclass thereof.
Defaults to: true
Available since: 4.0.0
true in this class to identify an object as an instantiated Sortable, or subclass thereof. ...true in this class to identify an object as an instantiated Sortable, or subclass thereof.
Defaults to: true
Available since: 4.0.0
true in this class to identify an object as an instantiated Store, or subclass thereof. ...true in this class to identify an object as an instantiated Store, or subclass thereof.
Defaults to: true
Available since: 4.0.0
true if the Store is currently loading via its Proxy. ...true if the Store is currently loading via its Proxy.
Defaults to: false
Available since: 4.0.0
modelDefaults : ObjectprivateA set of default values to be applied to every model instance added via insert or created
via createModel. ...A set of default values to be applied to every model instance added via insert or created
via createModel. This is used internally by associations to set foreign keys and
other fields. See the Association classes source code for examples. This should not need to be used by application developers.
Available since: 4.0.0
Only present when this Store is buffered. ...Only present when this Store is buffered.
A cache of pages of records used to satisfy load requests from the Store when the associated view
scrolls downwards.
Pages in the direction of scroll are prefetched from the remote server and loaded into this cache before
they are needed so that scrolling can proceed without visible pauses for data loading.
Available since: 4.1.1
removed : Ext.data.Model[]protectedTemporary cache in which removed model instances are kept until successfully synchronised with a Proxy,
at which poin...Temporary cache in which removed model instances are kept until successfully synchronised with a Proxy,
at which point this is cleared.
Available since: 4.0.0
Get the reference to the current class from which this object was instantiated. ...Get the reference to the current class from which this object was instantiated. Unlike statics,
this.self is scope-dependent and it's meant to be used for dynamic inheritance. See statics
for a detailed comparison
Ext.define('My.Cat', {
statics: {
speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
},
constructor: function() {
alert(this.self.speciesName); // dependent on 'this'
},
clone: function() {
return new this.self();
}
});
Ext.define('My.SnowLeopard', {
extend: 'My.Cat',
statics: {
speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard'
}
});
var cat = new My.Cat(); // alerts 'Cat'
var snowLeopard = new My.SnowLeopard(); // alerts 'Snow Leopard'
var clone = snowLeopard.clone();
alert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'
Available since: 4.0.0
A pristine (unfiltered) collection of the records in this store. ...A pristine (unfiltered) collection of the records in this store. This is used to reinstate
records when a filter is removed or changed
Available since: 4.0.0
Private. Used as parameter to loadRecords
Defaults to: {addRecords: true}
Available since: 4.1.1
The page that the Store has most recently loaded (see loadPage)
Defaults to: 1
Available since: 4.0.0
The MixedCollection that holds this store's local cache of records.
The MixedCollection that holds this store's local cache of records.
Available since: 4.0.0
The string type of the Proxy to create if none is specified. This defaults to creating a memory proxy.
Defaults to: 'memory'
Available since: 4.0.0
Number of records to load into a buffered grid before it has been bound to a view of known size
Defaults to: 100
Available since: Ext JS 4.1.3
Initial suspended call count. Incremented when suspendEvents is called, decremented when resumeEvents is called.
Defaults to: 0
Available since: 4.1.1
This object holds a key for any event that has a listener. The listener may be set directly on the instance, or on its class or a super class (via observe) or on the MVC EventBus. The values of this object are truthy (a non-zero number) and falsy (0 or undefined). They do not represent an exact count of listeners. The value for an event is truthy if the event must be fired and is falsy if there is no need to fire the event.
The intended use of this property is to avoid the expense of fireEvent calls when there are no listeners. This can be particularly helpful when one would otherwise have to call fireEvent hundreds or thousands of times. It is used like this:
if (this.hasListeners.foo) {
this.fireEvent('foo', this, arg1);
}
Available since: 4.1.0
True if a model was created implicitly for this Store. This happens if a fields array is passed to the Store's constructor instead of a model constructor or name.
Defaults to: false
Available since: 4.0.0
True if the Store has already been destroyed. If this is true, the reference to Store should be deleted as it will not function correctly any more.
Defaults to: false
Available since: 3.4.0
true in this class to identify an object as an instantiated Observable, or subclass thereof.
Defaults to: true
Available since: 4.0.0
true in this class to identify an object as an instantiated Sortable, or subclass thereof.
Defaults to: true
Available since: 4.0.0
true in this class to identify an object as an instantiated Store, or subclass thereof.
Defaults to: true
Available since: 4.0.0
true if the Store is currently loading via its Proxy.
Defaults to: false
Available since: 4.0.0
A set of default values to be applied to every model instance added via insert or created via createModel. This is used internally by associations to set foreign keys and other fields. See the Association classes source code for examples. This should not need to be used by application developers.
Available since: 4.0.0
Only present when this Store is buffered.
A cache of pages of records used to satisfy load requests from the Store when the associated view scrolls downwards.
Pages in the direction of scroll are prefetched from the remote server and loaded into this cache before they are needed so that scrolling can proceed without visible pauses for data loading.
Available since: 4.1.1
Temporary cache in which removed model instances are kept until successfully synchronised with a Proxy, at which point this is cleared.
Available since: 4.0.0
Get the reference to the current class from which this object was instantiated. Unlike statics,
this.self is scope-dependent and it's meant to be used for dynamic inheritance. See statics
for a detailed comparison
Ext.define('My.Cat', {
statics: {
speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
},
constructor: function() {
alert(this.self.speciesName); // dependent on 'this'
},
clone: function() {
return new this.self();
}
});
Ext.define('My.SnowLeopard', {
extend: 'My.Cat',
statics: {
speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard'
}
});
var cat = new My.Cat(); // alerts 'Cat'
var snowLeopard = new My.SnowLeopard(); // alerts 'Snow Leopard'
var clone = snowLeopard.clone();
alert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'
Available since: 4.0.0
A pristine (unfiltered) collection of the records in this store. This is used to reinstate records when a filter is removed or changed
Available since: 4.0.0
Static Properties
Methods
Instance Methods Creates the store. ...Creates the store.
Available since: 1.1.0
Parameters
- config : Object (optional)
Config object.
Returns
Overrides: Ext.data.AbstractStore.constructor
Adds Model instance to the Store. ...Adds Model instance to the Store. This method accepts either:
- An array of Model instances or Model configuration objects.
- Any number of Model instance or Model configuration object arguments.
The new Model instances will be added at the end of the existing collection.
Sample usage:
myStore.add({some: 'data'}, {some: 'other data'});
Note that if this Store is sorted, the new Model instances will be inserted
at the correct point in the Store to maintain the sort order.
Available since: 1.1.0
Parameters
- model : Ext.data.Model[]/Ext.data.Model...
An array of Model instances
or Model configuration objects, or variable number of Model instance or config arguments.
Returns
- Ext.data.Model[]
The model instances that were added
addEvents( eventNames )Adds 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.
Available since: 1.1.0
Parameters
Appends an event handler to this object. ...Appends an event handler to this object. For example:
myGridPanel.on("mouseover", this.onMouseOver, this);
The method also allows for a single argument to be passed which is a config object
containing properties which specify multiple events. For example:
myGridPanel.on({
cellClick: this.onCellClick,
mouseover: this.onMouseOver,
mouseout: this.onMouseOut,
scope: this // Important. Ensure "this" is correct during handler execution
});
One can also specify options for each event handler separately:
myGridPanel.on({
cellClick: {fn: this.onCellClick, scope: this, single: true},
mouseover: {fn: panel.onMouseOver, scope: panel}
});
Names of methods in a specified scope may also be used. Note that
scope MUST be specified to use this option:
myGridPanel.on({
cellClick: {fn: 'onCellClick', scope: this, single: true},
mouseover: {fn: 'onMouseOver', scope: panel}
});
Available since: 1.1.0
Parameters
- eventName : String/Object
The name of the event to listen for.
May also be an object who's property names are event names.
- fn : Function (optional)
The method the event invokes, or if scope is specified, the name* of the method within
the specified scope. Will be called with arguments
given to fireEvent plus the options parameter described below.
- 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.
Note: Unlike in ExtJS 3.x, the options object will also be passed as the last
argument to every event handler.
This object may contain any of the following properties:
- scope : Object
The scope (this reference) in which the handler function is executed. If omitted,
defaults to the object which fired the event.
- delay : Number
The number of milliseconds to delay the invocation of the handler after the event fires.
- single : Boolean
True to add a handler to handle just the next firing of the event, and then remove itself.
- buffer : Number
Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed
by the specified number of milliseconds. If the event fires again within that time,
the original handler is not invoked, but the new handler is scheduled in its place.
- target : Ext.util.Observable
Only call the handler if the event was fired on the target Observable, not if the event
was bubbled up from a child Observable.
- element : String
This option is only valid for listeners bound to Components.
The name of a Component property which references an element to add a listener to.
This option is useful during Component construction to add DOM event listeners to elements of
Components which will exist only after the Component is rendered.
For example, to add a click listener to a Panel's body:
new Ext.panel.Panel({
title: 'The title',
listeners: {
click: this.handlePanelClick,
element: 'body'
}
});
- destroyable : Boolean (optional)
When specified as true, the function returns A Destroyable object. An object which implements the destroy method which removes all listeners added in this call.
Combining Options
Using the options argument, it is possible to combine different types of listeners:
A delayed, one-time listener.
myPanel.on('hide', this.handleClick, this, {
single: true,
delay: 100
});
Defaults to: false
Returns
- Object
Only when the destroyable option is specified.
A Destroyable object. An object which implements the destroy method which removes all listeners added in this call. For example:
this.btnListeners = = myButton.on({
destroyable: true
mouseover: function() { console.log('mouseover'); },
mouseout: function() { console.log('mouseout'); },
click: function() { console.log('click'); }
});
And when those listeners need to be removed:
Ext.destroy(this.btnListeners);
or
this.btnListeners.destroy();
Overrides: Ext.AbstractComponent.addListener
Adds listeners to any Observable object (or Ext.Element) which are automatically removed when this Component is
destr...Adds listeners to any Observable object (or Ext.Element) which are automatically removed when this Component is
destroyed.
Available since: 4.0.0
Parameters
- item : Ext.util.Observable/Ext.Element
The item to which to add a listener/listeners.
- ename : Object/String
The event name, or an object containing event name properties.
- fn : Function (optional)
If the ename parameter was an event name, this is the handler function.
- scope : Object (optional)
If the ename parameter was an event name, this is the scope (this reference)
in which the handler function is executed.
- options : Object (optional)
If the ename parameter was an event name, this is the
addListener options.
Returns
- Object
Only when the destroyable option is specified.
A Destroyable object. An object which implements the destroy method which removes all listeners added in this call. For example:
this.btnListeners = = myButton.mon({
destroyable: true
mouseover: function() { console.log('mouseover'); },
mouseout: function() { console.log('mouseout'); },
click: function() { console.log('click'); }
});
And when those listeners need to be removed:
Ext.destroy(this.btnListeners);
or
this.btnListeners.destroy();
addSorted( record )(Local sort only) Inserts the passed Record into the Store at the index where it
should go based on the current sort ...(Local sort only) Inserts the passed Record into the Store at the index where it
should go based on the current sort information.
Available since: 2.3.0
Parameters
- record : Ext.data.Record
afterCommit( record )privateA model instance should call this method on the Store it has been joined to. ...A model instance should call this method on the Store it has been joined to.
Available since: 3.4.0
Parameters
- record : Ext.data.Model
The model instance that was edited
afterEdit( record, modifiedFieldNames )privateA model instance should call this method on the Store it has been joined to. ...A model instance should call this method on the Store it has been joined to.
Available since: 3.4.0
Parameters
- record : Ext.data.Model
The model instance that was edited
- modifiedFieldNames : String[]
Array of field names changed during edit.
afterReject( record )privateA model instance should call this method on the Store it has been joined to.. ...A model instance should call this method on the Store it has been joined to..
Available since: 3.4.0
Parameters
- record : Ext.data.Model
The model instance that was edited
Runs the aggregate function for all the records in the store. ...Runs the aggregate function for all the records in the store.
When store is filtered, only items within the filter are aggregated.
Available since: 4.0.0
Parameters
- fn : Function
The function to execute. The function is called with a single parameter,
an array of records for that group.
- scope : Object (optional)
The scope to execute the function in. Defaults to the store.
- grouped : Boolean (optional)
True to perform the operation for each group
in the store. The value returned will be an object literal with the key being the group
name and the group average being the value. The grouped parameter is only honored if
the store has a groupField.
- args : Array (optional)
Any arguments to append to the function call
Returns
- Object
An object literal with the group names and their appropriate values.
Gets the average value in the store. ...Gets the average value in the store.
When store is filtered, only items within the filter are aggregated.
Available since: 4.0.0
Parameters
- field : String
The field in each record
- grouped : Boolean (optional)
True to perform the operation for each group
in the store. The value returned will be an object literal with the key being the group
name and the group average being the value. The grouped parameter is only honored if
the store has a groupField.
Returns
- Object
The average value, if no items exist, 0.
cachePage( records, The )privateCaches the records in the prefetch and stripes them with their server-side
index. ...Caches the records in the prefetch and stripes them with their server-side
index.
Available since: 4.1.0
Parameters
- records : Ext.data.Model[]
The records to cache
- The : Ext.data.Operation
associated operation
Call the original method that was previously overridden with override
Ext.define('My.Cat', {
constructor: functi...Call the original method that was previously overridden with override
Ext.define('My.Cat', {
constructor: function() {
alert("I'm a cat!");
}
});
My.Cat.override({
constructor: function() {
alert("I'm going to be a cat!");
this.callOverridden();
alert("Meeeeoooowwww");
}
});
var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
// alerts "I'm a cat!"
// alerts "Meeeeoooowwww"
This method has been deprecated
as of 4.1. Use callParent instead.
Available since: 4.0.0
Parameters
- args : Array/Arguments
The arguments, either an array or the arguments object
from the current method, for example: this.callOverridden(arguments)
Returns
- Object
Returns the result of calling the overridden method
Call the "parent" method of the current method. ...Call the "parent" method of the current method. That is the method previously
overridden by derivation or by an override (see Ext.define).
Ext.define('My.Base', {
constructor: function (x) {
this.x = x;
},
statics: {
method: function (x) {
return x;
}
}
});
Ext.define('My.Derived', {
extend: 'My.Base',
constructor: function () {
this.callParent([21]);
}
});
var obj = new My.Derived();
alert(obj.x); // alerts 21
This can be used with an override as follows:
Ext.define('My.DerivedOverride', {
override: 'My.Derived',
constructor: function (x) {
this.callParent([x*2]); // calls original My.Derived constructor
}
});
var obj = new My.Derived();
alert(obj.x); // now alerts 42
This also works with static methods.
Ext.define('My.Derived2', {
extend: 'My.Base',
statics: {
method: function (x) {
return this.callParent([x*2]); // calls My.Base.method
}
}
});
alert(My.Base.method(10); // alerts 10
alert(My.Derived2.method(10); // alerts 20
Lastly, it also works with overridden static methods.
Ext.define('My.Derived2Override', {
override: 'My.Derived2',
statics: {
method: function (x) {
return this.callParent([x*2]); // calls My.Derived2.method
}
}
});
alert(My.Derived2.method(10); // now alerts 40
To override a method and replace it and also call the superclass method, use
callSuper. This is often done to patch a method to fix a bug.
Available since: 4.0.0
Parameters
- args : Array/Arguments
The arguments, either an array or the arguments object
from the current method, for example: this.callParent(arguments)
Returns
- Object
Returns the result of calling the parent method
This method is used by an override to call the superclass method but bypass any
overridden method. ...This method is used by an override to call the superclass method but bypass any
overridden method. This is often done to "patch" a method that contains a bug
but for whatever reason cannot be fixed directly.
Consider:
Ext.define('Ext.some.Class', {
method: function () {
console.log('Good');
}
});
Ext.define('Ext.some.DerivedClass', {
method: function () {
console.log('Bad');
// ... logic but with a bug ...
this.callParent();
}
});
To patch the bug in DerivedClass.method, the typical solution is to create an
override:
Ext.define('App.paches.DerivedClass', {
override: 'Ext.some.DerivedClass',
method: function () {
console.log('Fixed');
// ... logic but with bug fixed ...
this.callSuper();
}
});
The patch method cannot use callParent to call the superclass method since
that would call the overridden method containing the bug. In other words, the
above patch would only produce "Fixed" then "Good" in the console log, whereas,
using callParent would produce "Fixed" then "Bad" then "Good".
Available since: Ext JS 4.1.3
Parameters
- args : Array/Arguments
The arguments, either an array or the arguments object
from the current method, for example: this.callSuper(arguments)
Returns
- Object
Returns the result of calling the superclass method
clearData( isLoad )privateprivate ...private
Available since: 3.4.0
Parameters
- isLoad : Object
Overrides: Ext.data.AbstractStore.clearData
clearFilter( [suppressEvent] )Reverts to a view of the Record cache with no filtering applied. ...Reverts to a view of the Record cache with no filtering applied.
Available since: 1.1.0
Parameters
- suppressEvent : Boolean (optional)
If true the filter is cleared silently.
For a locally filtered Store, this means that the filter collection is cleared without firing the
datachanged event.
For a remotely filtered Store, this means that the filter collection is cleared, but the store
is not reloaded from the server.
Overrides: Ext.data.AbstractStore.clearFilter
Removes all listeners for this object including the managed listeners ...Removes all listeners for this object including the managed listeners
Available since: 4.0.0
Removes all managed listeners for this object. ...Removes all managed listeners for this object.
Available since: 4.0.0
Collects unique values for a particular dataIndex from this store. ...Collects unique values for a particular dataIndex from this store.
Available since: 1.1.0
Parameters
- dataIndex : String
The property to collect
- allowNull : Boolean (optional)
Pass true to allow null, undefined or empty string values
- bypassFilter : Boolean (optional)
Pass true to collect from all records, even ones which are filtered.
Returns
- Object[]
An array of the unique values
Commits all Records with outstanding changes. ...Commits all Records with outstanding changes. To handle updates for changes,
subscribe to the Store's update event, and perform updating when the third parameter is
Ext.data.Record.COMMIT.
Available since: 1.1.0
continueFireEvent( eventName, args, bubbles )private Gets the count of items in the store. ...Gets the count of items in the store.
When store is filtered, only items within the filter are counted.
Available since: 4.0.0
Parameters
- grouped : Boolean (optional)
True to perform the operation for each group
in the store. The value returned will be an object literal with the key being the group
name and the count for each group being the value. The grouped parameter is only honored if
the store has a groupField.
Returns
- Number
the count
create( data, options )private createFilterFn( property, value, [anyMatch], [caseSensitive], [exactMatch] )privateReturns a filter function used to test a the given property's value. ...Returns a filter function used to test a the given property's value. Defers most of the work to
Ext.util.MixedCollection's createValueMatcher function.
Available since: 3.4.0
Parameters
- property : String
The property to create the filter function for
- value : String/RegExp
The string/regex to compare the property value to
- anyMatch : Boolean (optional)
True if we don't care if the filter value is not the full value.
Defaults to: false
- caseSensitive : Boolean (optional)
True to create a case-sensitive regex.
Defaults to: false
- exactMatch : Boolean (optional)
True to force exact match (^ and $ characters added to the regex).
Ignored if anyMatch is true.
Defaults to: false
Converts a literal to a model, if it's not a model already ...Converts a literal to a model, if it's not a model already
Available since: 4.0.0
Parameters
- record : Ext.data.Model/Object
The record to create
Returns
Creates an event handling function which refires the event from this object as the passed event name. ... Normalizes an array of filter objects, ensuring that they are all Ext.util.Filter instances ...Normalizes an array of filter objects, ensuring that they are all Ext.util.Filter instances
Available since: 4.0.0
Parameters
- filters : Object[]
The filters array
Returns
- Ext.util.Filter[]
Array of Ext.util.Filter objects
Normalizes an array of grouper objects, ensuring that they are all Ext.util.Grouper instances ...Normalizes an array of grouper objects, ensuring that they are all Ext.util.Grouper instances
Available since: 4.0.0
Parameters
- groupers : Object[]
The groupers array
Returns
- Ext.util.Grouper[]
Array of Ext.util.Grouper objects
Normalizes an array of sorter objects, ensuring that they are all Ext.util.Sorter instances ...Normalizes an array of sorter objects, ensuring that they are all Ext.util.Sorter instances
Available since: 4.0.0
Parameters
- sorters : Object[]
The sorters array
Returns
- Ext.util.Sorter[]
Array of Ext.util.Sorter objects
destroy( )privatetells the attached proxy to destroy the given records ...tells the attached proxy to destroy the given records
Available since: 3.4.0
Overrides: Ext.Base.destroy
destroyStore( )privateprivate override
After destroying the Store, clear the page prefetch cache ...private override
After destroying the Store, clear the page prefetch cache
Available since: 4.0.0
Overrides: Ext.data.AbstractStore.destroyStore
doSort( sorterFn )privateoverriden to provide striping of the indexes as sorting occurs. ...overriden to provide striping of the indexes as sorting occurs.
this cannot be done inside of sort because datachanged has already
fired and will trigger a repaint of the bound view.
Available since: 4.0.0
Parameters
- sorterFn : Object
Overrides: Ext.data.AbstractStore.doSort
each( fn, [scope] )Calls the specified function for each record in the store. ...Calls the specified function for each record in the store.
When store is filtered, only loops over the filtered records.
Available since: 1.1.0
Parameters
enableBubble( eventNames )Enables 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.define('Ext.overrides.form.field.Base', {
override: 'Ext.form.field.Base',
// Add functionality to Field's initComponent to enable the change event to bubble
initComponent: function () {
this.callParent();
this.enableBubble('change');
}
});
var myForm = Ext.create('Ext.form.Panel', {
title: 'User Details',
items: [{
...
}],
listeners: {
change: function() {
// Title goes red if form has been modified.
myForm.header.setStyle('color', 'red');
}
}
});
Available since: 3.4.0
Parameters
filter( filters, [value] )Filters the loaded set of records by a given set of filters. ...Filters the loaded set of records by a given set of filters.
By default, the passed filter(s) are added to the collection of filters being used to filter this Store.
To remove existing filters before applying a new set of filters use
// Clear the filter collection without updating the UI
store.clearFilter(true);
see clearFilter.
Alternatively, if filters are configured with an id, then existing filters store may be replaced by new
filters having the same id.
Filtering by single field:
store.filter("email", /\.com$/);
Using multiple filters:
store.filter([
{property: "email", value: /\.com$/},
{filterFn: function(item) { return item.get("age") > 10; }}
]);
Using Ext.util.Filter instances instead of config objects
(note that we need to specify the root config option in this case):
store.filter([
Ext.create('Ext.util.Filter', {property: "email", value: /\.com$/, root: 'data'}),
Ext.create('Ext.util.Filter', {filterFn: function(item) { return item.get("age") > 10; }, root: 'data'})
]);
When store is filtered, most of the methods for accessing store data will be working only
within the set of filtered records. Two notable exceptions are queryBy and
getById.
Available since: 1.1.0
Parameters
- filters : Object[]/Ext.util.Filter[]/String
The set of filters to apply to the data.
These are stored internally on the store, but the filtering itself is done on the Store's
MixedCollection. See MixedCollection's
filter method for filter syntax.
Alternatively, pass in a property string
- value : String (optional)
value to filter by (only if using a property string as the first argument)
Overrides: Ext.data.AbstractStore.filter
filterBy( fn, [scope] )Filters by a function. ...Filters by a function. The specified function will be called for each
Record in this Store. If the function returns true the Record is included,
otherwise it is filtered out.
When store is filtered, most of the methods for accessing store data will be working only
within the set of filtered records. Two notable exceptions are queryBy and
getById.
Available since: 1.1.0
Parameters
- fn : Function
The function to be called. It will be passed the following parameters:
Parameters
- record : Ext.data.Model
The record to test for filtering. Access field values
using Ext.data.Model.get.
- id : Object
The ID of the Record passed.
- scope : Object (optional)
The scope (this reference) in which the function is executed.
Defaults to this Store.
Overrides: Ext.data.AbstractStore.filterBy
Finds the index of the first matching Record in this store by a specific field value. ...Finds the index of the first matching Record in this store by a specific field value.
When store is filtered, finds records only within filter.
Available since: 2.3.0
Parameters
- fieldName : String
The name of the Record field to test.
- value : String/RegExp
Either a string that the field value
should begin with, or a RegExp to test against the field.
- startIndex : Number (optional)
The index to start searching at
Defaults to: 0
- anyMatch : Boolean (optional)
True to match any part of the string, not just the beginning
Defaults to: false
- caseSensitive : Boolean (optional)
True for case sensitive comparison
Defaults to: false
- exactMatch : Boolean (optional)
True to force exact match (^ and $ characters added to the regex).
Defaults to: false
Returns
- Number
The matched index or -1
Find the index of the first matching Record in this Store by a function. ...Find the index of the first matching Record in this Store by a function.
If the function returns true it is considered a match.
When store is filtered, finds records only within filter.
Available since: 2.3.0
Parameters
- fn : Function
The function to be called. It will be passed the following parameters:
Parameters
- record : Ext.data.Model
The record to test for filtering. Access field values
using Ext.data.Model.get.
- id : Object
The ID of the Record passed.
- scope : Object (optional)
The scope (this reference) in which the function is executed.
Defaults to this Store.
- startIndex : Number (optional)
The index to start searching at
Defaults to: 0
Returns
- Number
The matched index or -1
Finds the index of the first matching Record in this store by a specific field value. ...Finds the index of the first matching Record in this store by a specific field value.
When store is filtered, finds records only within filter.
Available since: 3.4.0
Parameters
- fieldName : String
The name of the Record field to test.
- value : Object
The value to match the field against.
- startIndex : Number (optional)
The index to start searching at
Defaults to: 0
Returns
- Number
The matched index or -1
findRecord( fieldName, value, [startIndex], [anyMatch], [caseSensitive], [exactMatch] ) : Ext.data.ModelFinds the first matching Record in this store by a specific field value. ...Finds the first matching Record in this store by a specific field value.
When store is filtered, finds records only within filter.
Available since: 4.0.0
Parameters
- fieldName : String
The name of the Record field to test.
- value : String/RegExp
Either a string that the field value
should begin with, or a RegExp to test against the field.
- startIndex : Number (optional)
The index to start searching at
Defaults to: 0
- anyMatch : Boolean (optional)
True to match any part of the string, not just the beginning
Defaults to: false
- caseSensitive : Boolean (optional)
True for case sensitive comparison
Defaults to: false
- exactMatch : Boolean (optional)
True to force exact match (^ and $ characters added to the regex).
Defaults to: false
Returns
- Ext.data.Model
The matched record or null
Fires the specified event with the passed parameters (minus the event name, plus the options object passed
to addList...Fires the specified event with the passed parameters (minus the event name, plus the options object passed
to addListener).
An event may be set to bubble up an Observable parent hierarchy (See Ext.Component.getBubbleTarget) by
calling enableBubble.
Available since: 1.1.0
Parameters
- eventName : String
The name of the event to fire.
- args : Object...
Variable number of parameters are passed to handlers.
Returns
- Boolean
returns false if any of the handlers return false otherwise it returns true.
fireGroupChange( )privateFires the groupchange event. ...Fires the groupchange event. Abstracted out so we can use it
as a callback
Available since: 4.0.0
Convenience function for getting the first model instance in the store. ...Convenience function for getting the first model instance in the store.
When store is filtered, will return first item within the filter.
Available since: 4.0.0
Parameters
- grouped : Boolean (optional)
True to perform the operation for each group
in the store. The value returned will be an object literal with the key being the group
name and the first record being the value. The grouped parameter is only honored if
the store has a groupField.
Returns
- Ext.data.Model/undefined
The first model instance in the store, or undefined
Returns a comparator function which compares two items and returns -1, 0, or 1 depending
on the currently defined set... Get the Record at the specified index. ...Get the Record at the specified index.
The index is effected by filtering.
Available since: 1.1.0
Parameters
- index : Number
The index of the Record to find.
Returns
- Ext.data.Model
The Record at the passed index. Returns undefined if not found.
getAverage( records, field )private getBatchListeners( ) : ObjectprivateReturns an object which is passed in as the listeners argument to proxy.batch inside this.sync. ...Returns an object which is passed in as the listeners argument to proxy.batch inside this.sync.
This is broken out into a separate function to allow for customisation of the listeners
Available since: 4.0.0
Returns
- Object
The listeners object
getBubbleParent( ) : Ext.util.ObservableprivateGets the bubbling parent for an Observable ...Gets the bubbling parent for an Observable
Available since: 4.0.7
Returns
- Ext.util.Observable
The bubble parent. null is returned if no bubble target exists
Get the Record with the specified id. ...Get the Record with the specified id.
This method is not effected by filtering, lookup will be performed from all records
inside the store, filtered or not.
Available since: 1.1.0
Parameters
- id : Mixed
The id of the Record to find.
Returns
- Ext.data.Model
The Record with the passed id. Returns null if not found.
Overrides: Ext.data.AbstractStore.getById
Gets the number of records in store. ...Gets the number of records in store.
If using paging, this may not be the total size of the dataset. If the data object
used by the Reader contains the dataset size, then the getTotalCount function returns
the dataset size. Note: see the Important note in load.
When store is filtered, it's the number of records matching the filter.
Available since: 1.1.0
Returns
- Number
The number of Records in the Store.
Overrides: Ext.data.AbstractStore.getCount
getFirstSorter( ) : Ext.util.SorterprotectedGets the first sorter from the sorters collection, excluding
any groupers that may be in place ...Gets the first sorter from the sorters collection, excluding
any groupers that may be in place
Available since: 4.1.1
Returns
- Ext.util.Sorter
The sorter, null if none exist
Returns records grouped by the configured grouper configuration. ...Returns records grouped by the configured grouper configuration. Sample return value (in
this case grouping by genre and then author in a fictional books dataset):
[
{
name: 'Fantasy',
depth: 0,
records: [
//book1, book2, book3, book4
],
children: [
{
name: 'Rowling',
depth: 1,
records: [
//book1, book2
]
},
{
name: 'Tolkein',
depth: 1,
records: [
//book3, book4
]
}
]
}
]
Available since: 4.0.0
Parameters
- sort : Boolean (optional)
true to call sort before finding groups. Sorting is required to make grouping
function correctly so this should only be set to false if the Store is known to already be sorted correctly.
Defaults to: true
Returns
- Object[]
The group data
Returns the string to group on for a given model instance. ...Returns the string to group on for a given model instance. The default implementation of this method returns
the model's groupField, but this can be overridden to group by an arbitrary string. For example, to
group by the first letter of a model's 'name' field, use the following code:
Ext.create('Ext.data.Store', {
groupDir: 'ASC',
getGroupString: function(instance) {
return instance.get('name')[0];
}
});
Available since: 4.0.0
Parameters
- instance : Ext.data.Model
The model instance
Returns
- String
The string to compare when forming groups
Returns an array containing the result of applying grouping to the records in this store. ...Returns an array containing the result of applying grouping to the records in this store.
See groupField, groupDir and getGroupString. Example for a store
containing records with a color field:
var myStore = Ext.create('Ext.data.Store', {
groupField: 'color',
groupDir : 'DESC'
});
myStore.getGroups(); // returns:
[
{
name: 'yellow',
children: [
// all records where the color field is 'yellow'
]
},
{
name: 'red',
children: [
// all records where the color field is 'red'
]
}
]
Group contents are effected by filtering.
Available since: 4.0.0
Parameters
- groupName : String (optional)
Pass in an optional groupName argument to access a specific
group as defined by getGroupString.
Returns
getGroupsForGrouper( records, grouper )privateFor a given set of records and a Grouper, returns an array of arrays - each of which is the set of records
matching a... This is used recursively to gather the records into the configured Groupers. ...This is used recursively to gather the records into the configured Groupers. The data MUST have been sorted for
this to work properly (see getGroupData and getGroupsForGrouper) Most of the work is done by
getGroupsForGrouper - this function largely just handles the recursion.
Available since: 4.0.0
Parameters
- records : Ext.data.Model[]
The set or subset of records to group
- grouperIndex : Number
The grouper index to retrieve
Returns
- Object[]
The grouped records
getMax( records, field )private getMin( records, field )private getModifiedRecords( ) : Ext.data.Model[]Gets all records added or updated since the last commit. ...Gets all records added or updated since the last commit. Note that the order of records
returned is not deterministic and does not indicate the order in which records were modified. Note also that
removed records are not included (use getRemovedRecords for that).
Available since: 4.1.0
Returns
- Ext.data.Model[]
The added and updated Model instances
getNewRecords( ) : Ext.data.Model[]inherit docs
Returns all Model instances that are either currently a phantom (e.g. ...inherit docs
Returns all Model instances that are either currently a phantom (e.g. have no id), or have an ID but have not
yet been saved on this Store (this happens when adding a non-phantom record from another Store into this one)
Available since: 4.0.0
Returns
- Ext.data.Model[]
The Model instances
Overrides: Ext.data.AbstractStore.getNewRecords
Returns the proxy currently attached to this proxy instance ...Returns the proxy currently attached to this proxy instance
Available since: 4.0.0
Returns
- Ext.data.proxy.Proxy
The Proxy instance
Returns a range of Records between specified indices. ...Returns a range of Records between specified indices.
This method is effected by filtering.
Available since: 1.1.0
Parameters
- startIndex : Number (optional)
The starting index
Defaults to: 0
- endIndex : Number (optional)
The ending index. Defaults to the last Record in the Store.
Returns
- Ext.data.Model[]
An array of Records
getRejectRecords( )privateIdeally in the future this will use getModifiedRecords, where there will be a param
to getNewRecords & getUpdated...Ideally in the future this will use getModifiedRecords, where there will be a param
to getNewRecords & getUpdatedRecords to indicate whether to get only the valid
records or grab all of them
Available since: 4.1.0
getRemovedRecords( ) : Ext.data.Model[]Returns any records that have been removed from the store but not yet destroyed on the proxy. ...Returns any records that have been removed from the store but not yet destroyed on the proxy.
Available since: 4.0.0
Returns
- Ext.data.Model[]
The removed Model instances
getSum( records, field )private getTotalCount( ) : NumberReturns the total number of Model instances that the Proxy
indicates exist. ...Returns the total number of Model instances that the Proxy
indicates exist. This will usually differ from getCount when using paging - getCount returns the
number of records loaded into the Store at the moment, getTotalCount returns the number of records that
could be loaded into the Store if the Store contained all data
Available since: 1.1.0
Returns
- Number
The total number of Model instances available via the Proxy. 0 returned if
no value has been set via the reader.
getUpdatedRecords( ) : Ext.data.Model[]inherit docs
Returns all Model instances that have been updated in the Store but not yet synchronized with the Proxy ...inherit docs
Returns all Model instances that have been updated in the Store but not yet synchronized with the Proxy
Available since: 4.0.0
Returns
- Ext.data.Model[]
The updated Model instances
Overrides: Ext.data.AbstractStore.getUpdatedRecords
guaranteeRange( start, end, callback, scope, options )Guarantee a specific range, this will load the store with a range (that
must be the pageSize or smaller) and take car... Checks to see if this object has any listeners for a specified event, or whether the event bubbles. ...Checks to see if this object has any listeners for a specified event, or whether the event bubbles. The answer
indicates whether the event needs firing or not.
Available since: 1.1.0
Parameters
- eventName : String
The name of the event to check for
Returns
- Boolean
true if the event is being listened for or bubbles, else false
Get the index of the record within the store. ...Get the index of the record within the store.
When store is filtered, records outside of filter will not be found.
Available since: 1.1.0
Parameters
- record : Ext.data.Model
The Ext.data.Model object to find.
Returns
- Number
The index of the passed Record. Returns -1 if not found.
Get the index within the entire dataset. ...Get the index within the entire dataset. From 0 to the totalCount.
Like indexOf, this method is effected by filtering.
Available since: 4.0.0
Parameters
- record : Ext.data.Model
The Ext.data.Model object to find.
Returns
- Number
The index of the passed Record. Returns -1 if not found.
Initialize configuration for this class. ...Initialize configuration for this class. a typical example:
Ext.define('My.awesome.Class', {
// The default config
config: {
name: 'Awesome',
isAwesome: true
},
constructor: function(config) {
this.initConfig(config);
}
});
var awesome = new My.awesome.Class({
name: 'Super Awesome'
});
alert(awesome.getName()); // 'Super Awesome'
Available since: 4.0.0
Parameters
- config : Object
Returns
- Ext.Base
this
initSortable( )Performs initialization of this mixin. ...Performs initialization of this mixin. Component classes using this mixin should call this method during their
own initialization.
Available since: 4.0.0
Inserts Model instances into the Store at the given index and fires the add event. ...Inserts Model instances into the Store at the given index and fires the add event.
See also add.
Available since: 1.1.0
Parameters
- index : Number
The start index at which to insert the passed Records.
- records : Ext.data.Model[]
An Array of Ext.data.Model objects to add to the store.
Returns
- Ext.data.Model[]
records The added records
isFiltered( ) : BooleanReturns true if this store is currently filtered ...Returns true if this store is currently filtered
Available since: 2.3.0
Returns
Overrides: Ext.data.AbstractStore.isFiltered
Checks if the store is currently grouped ...Checks if the store is currently grouped
Available since: 4.0.0
Returns
- Boolean
true if the store is grouped.
Returns true if the Store is currently performing a load operation ...Returns true if the Store is currently performing a load operation
Available since: 4.0.0
Returns
- Boolean
True if the Store is currently loading
Convenience function for getting the last model instance in the store. ...Convenience function for getting the last model instance in the store.
When store is filtered, will return last item within the filter.
Available since: 4.0.0
Parameters
- grouped : Boolean (optional)
True to perform the operation for each group
in the store. The value returned will be an object literal with the key being the group
name and the last record being the value. The grouped parameter is only honored if
the store has a groupField.
Returns
- Ext.data.Model/undefined
The last model instance in the store, or undefined
load( [options] )Loads data into the Store via the configured proxy. ...Loads data into the Store via the configured proxy. This uses the Proxy to make an
asynchronous call to whatever storage backend the Proxy uses, automatically adding the retrieved
instances into the Store and calling an optional callback if required. Example usage:
store.load({
scope: this,
callback: function(records, operation, success) {
// the operation object
// contains all of the details of the load operation
console.log(records);
}
});
If the callback scope does not need to be set, a function can simply be passed:
store.load(function(records, operation, success) {
console.log('loaded records');
});
Available since: 1.1.0
Parameters
- options : Object/Function (optional)
config object, passed into the Ext.data.Operation object before loading.
Additionally addRecords: true can be specified to add these records to the existing records, default is
to remove the Store's existing records first.
Overrides: Ext.data.AbstractStore.load
loadData( data, [append] )Loads an array of data straight into the Store. ...Loads an array of data straight into the Store.
Using this method is great if the data is in the correct format already (e.g. it doesn't need to be
processed by a reader). If your data requires processing to decode the data structure, use a
MemoryProxy instead.
Available since: 1.1.0
Parameters
- data : Ext.data.Model[]/Object[]
Array of data to load. Any non-model instances will be cast
into model instances first.
- append : Boolean (optional)
true to add the records to the existing records in the store, false
to remove the old ones first.
Defaults to: false
loadPage( page, [options] )Loads a given 'page' of data by setting the start and limit values appropriately. ...Loads a given 'page' of data by setting the start and limit values appropriately. Internally this just causes a normal
load operation, passing in calculated 'start' and 'limit' params.
Available since: 4.0.0
Parameters
loadRawData( data, [append] )Loads data via the bound Proxy's reader
Use this method if you are attempting to load data and want to utilize the c...Loads data via the bound Proxy's reader
Use this method if you are attempting to load data and want to utilize the configured data reader.
Available since: 4.0.7
Parameters
loadRecords( records, options )Loads an array of model instances into the store, fires the datachanged event. ...Loads an array of model instances into the store, fires the datachanged event. This should only usually
be called internally when loading from the Proxy, when adding records manually use add instead
Available since: 3.4.0
Parameters
- records : Ext.data.Model[]
The array of records to load
- options : Object
Gets the maximum value in the store. ...Gets the maximum value in the store.
When store is filtered, only items within the filter are aggregated.
Available since: 4.0.0
Parameters
- field : String
The field in each record
- grouped : Boolean (optional)
True to perform the operation for each group
in the store. The value returned will be an object literal with the key being the group
name and the maximum in the group being the value. The grouped parameter is only honored if
the store has a groupField.
Returns
- Object
The maximum value, if no items exist, undefined.
Gets the minimum value in the store. ...Gets the minimum value in the store.
When store is filtered, only items within the filter are aggregated.
Available since: 4.0.0
Parameters
- field : String
The field in each record
- grouped : Boolean (optional)
True to perform the operation for each group
in the store. The value returned will be an object literal with the key being the group
name and the minimum in the group being the value. The grouped parameter is only honored if
the store has a groupField.
Returns
- Object
The minimum value, if no items exist, undefined.
Shorthand for addManagedListener. ...Shorthand for addManagedListener.
Adds listeners to any Observable object (or Ext.Element) which are automatically removed when this Component is
destroyed.
Available since: 4.0.2
Parameters
- item : Ext.util.Observable/Ext.Element
The item to which to add a listener/listeners.
- ename : Object/String
The event name, or an object containing event name properties.
- fn : Function (optional)
If the ename parameter was an event name, this is the handler function.
- scope : Object (optional)
If the ename parameter was an event name, this is the scope (this reference)
in which the handler function is executed.
- options : Object (optional)
If the ename parameter was an event name, this is the
addListener options.
Returns
- Object
Only when the destroyable option is specified.
A Destroyable object. An object which implements the destroy method which removes all listeners added in this call. For example:
this.btnListeners = = myButton.mon({
destroyable: true
mouseover: function() { console.log('mouseover'); },
mouseout: function() { console.log('mouseout'); },
click: function() { console.log('click'); }
});
And when those listeners need to be removed:
Ext.destroy(this.btnListeners);
or
this.btnListeners.destroy();
mun( item, ename, [fn], [scope] )Shorthand for removeManagedListener. ...Shorthand for removeManagedListener.
Removes listeners that were added by the mon method.
Available since: 4.0.2
Parameters
- item : Ext.util.Observable/Ext.Element
The item from which to remove a listener/listeners.
- ename : Object/String
The event name, or an object containing event name properties.
- fn : Function (optional)
If the ename parameter was an event name, this is the handler function.
- scope : Object (optional)
If the ename parameter was an event name, this is the scope (this reference)
in which the handler function is executed.
nextPage( options ) Shorthand for addListener. ...Shorthand for addListener.
Appends an event handler to this object. For example:
myGridPanel.on("mouseover", this.onMouseOver, this);
The method also allows for a single argument to be passed which is a config object
containing properties which specify multiple events. For example:
myGridPanel.on({
cellClick: this.onCellClick,
mouseover: this.onMouseOver,
mouseout: this.onMouseOut,
scope: this // Important. Ensure "this" is correct during handler execution
});
One can also specify options for each event handler separately:
myGridPanel.on({
cellClick: {fn: this.onCellClick, scope: this, single: true},
mouseover: {fn: panel.onMouseOver, scope: panel}
});
Names of methods in a specified scope may also be used. Note that
scope MUST be specified to use this option:
myGridPanel.on({
cellClick: {fn: 'onCellClick', scope: this, single: true},
mouseover: {fn: 'onMouseOver', scope: panel}
});
Available since: 1.1.0
Parameters
- eventName : String/Object
The name of the event to listen for.
May also be an object who's property names are event names.
- fn : Function (optional)
The method the event invokes, or if scope is specified, the name* of the method within
the specified scope. Will be called with arguments
given to fireEvent plus the options parameter described below.
- 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.
Note: Unlike in ExtJS 3.x, the options object will also be passed as the last
argument to every event handler.
This object may contain any of the following properties:
- scope : Object
The scope (this reference) in which the handler function is executed. If omitted,
defaults to the object which fired the event.
- delay : Number
The number of milliseconds to delay the invocation of the handler after the event fires.
- single : Boolean
True to add a handler to handle just the next firing of the event, and then remove itself.
- buffer : Number
Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed
by the specified number of milliseconds. If the event fires again within that time,
the original handler is not invoked, but the new handler is scheduled in its place.
- target : Ext.util.Observable
Only call the handler if the event was fired on the target Observable, not if the event
was bubbled up from a child Observable.
- element : String
This option is only valid for listeners bound to Components.
The name of a Component property which references an element to add a listener to.
This option is useful during Component construction to add DOM event listeners to elements of
Components which will exist only after the Component is rendered.
For example, to add a click listener to a Panel's body:
new Ext.panel.Panel({
title: 'The title',
listeners: {
click: this.handlePanelClick,
element: 'body'
}
});
- destroyable : Boolean (optional)
When specified as true, the function returns A Destroyable object. An object which implements the destroy method which removes all listeners added in this call.
Combining Options
Using the options argument, it is possible to combine different types of listeners:
A delayed, one-time listener.
myPanel.on('hide', this.handleClick, this, {
single: true,
delay: 100
});
Defaults to: false
Returns
- Object
Only when the destroyable option is specified.
A Destroyable object. An object which implements the destroy method which removes all listeners added in this call. For example:
this.btnListeners = = myButton.on({
destroyable: true
mouseover: function() { console.log('mouseover'); },
mouseout: function() { console.log('mouseout'); },
click: function() { console.log('click'); }
});
And when those listeners need to be removed:
Ext.destroy(this.btnListeners);
or
this.btnListeners.destroy();
onBatchComplete( batch, operation )private onBatchException( batch, operation )private onBatchOperationComplete( batch, operation )private onClassExtended( cls, data, hooks )private onConfigUpdate( names, callback, scope )private onCreateRecords( )privatemay be implemented by store subclasses ...may be implemented by store subclasses
Available since: 4.1.0
onDestroyRecords( records, operation, success )privateRemoves any records when a write is returned from the server. ...Removes any records when a write is returned from the server.
Available since: 4.1.0
Parameters
- records : Ext.data.Model[]
The array of removed records
- operation : Ext.data.Operation
The operation that just completed
- success : Boolean
True if the operation was successful
onMetaChange( proxy, meta )private onPageMapClear( )★privateCancels all pending prefetch requests. ...Cancels all pending prefetch requests.
This is called when the page map is cleared.
Any requests which still make it through will be for the previous page map generation
(generation is incremented upon clear), and so will be rejected upon arrival.
Available since: Ext JS 4.1.3
onProxyLoad( operation )privateCalled internally when a Proxy has completed a load request ...Called internally when a Proxy has completed a load request
Available since: 4.0.0
Parameters
- operation : Object
onProxyPrefetch( operation )privateCalled after the configured proxy completes a prefetch operation. ...Called after the configured proxy completes a prefetch operation.
Available since: 4.0.0
Parameters
- operation : Ext.data.Operation
The operation that completed
onProxyWrite( operation )privateCallback for any write Operation over the Proxy. ...Callback for any write Operation over the Proxy. Updates the Store's MixedCollection to reflect
the updates provided by the Proxy
Available since: 4.0.0
Parameters
- operation : Object
onUpdateRecords( )privatemay be implemented by store subclasses ...may be implemented by store subclasses
Available since: 4.1.0
pageCached( page )privateDetermines if the passed page is available in the page cache. ...Determines if the passed page is available in the page cache.
Available since: 4.1.0
Parameters
- page : Number
The page to find in the page cache.
prefetch( [options] )Prefetches data into the store using its configured proxy. ...Prefetches data into the store using its configured proxy.
Available since: 4.0.0
Parameters
- options : Object (optional)
config object, passed into the Ext.data.Operation object before loading.
See load
prefetchPage( page, [options] )Prefetches a page of data. ...Prefetches a page of data.
Available since: 4.0.0
Parameters
- page : Number
The page to prefetch
- options : Object (optional)
config object, passed into the Ext.data.Operation object before loading.
See load
prepareClass( T )privatePrepares a given class for observable instances. ...Prepares a given class for observable instances. This method is called when a
class derives from this class or uses this class as a mixin.
Available since: 4.1.0
Parameters
- T : Function
The class constructor to prepare.
previousPage( options ) Query all the cached records in this Store by name/value pair. ...Query all the cached records in this Store by name/value pair.
The parameters will be used to generated a filter function that is given
to the queryBy method.
This method compliments queryBy by generating the query function automatically.
Available since: 1.1.0
Parameters
- property : String
The property to create the filter function for
- value : String/RegExp
The string/regex to compare the property value to
- anyMatch : Boolean (optional)
true if we don't care if the filter value is not the full value.
Defaults to: false
- caseSensitive : Boolean (optional)
true to create a case-sensitive regex.
Defaults to: false
- exactMatch : Boolean (optional)
true to force exact match (^ and $ characters added to the regex).
Ignored if anyMatch is true.
Defaults to: false
Returns
- Ext.util.MixedCollection
Returns an Ext.util.MixedCollection of the matched records
Query all the cached records in this Store using a filtering function. ...Query all the cached records in this Store using a filtering function. The specified function
will be called with each record in this Store. If the function returns true the record is
included in the results.
This method is not effected by filtering, it will always look from all records inside the store
no matter if filter is applied or not.
Available since: 1.1.0
Parameters
- fn : Function
The function to be called. It will be passed the following parameters:
Parameters
- record : Ext.data.Model
The record to test for filtering. Access field values
using Ext.data.Model.get.
- id : Object
The ID of the Record passed.
- scope : Object (optional)
The scope (this reference) in which the function is executed
Defaults to this Store.
Returns
- Ext.util.MixedCollection
Returns an Ext.util.MixedCollection of the matched records
rangeCached( start, end )private Determines if the passed range is available in the page cache. ...Determines if the passed range is available in the page cache.
This method has been deprecated since 4.1.0
use rangeCached instead
Available since: 4.0.0
Parameters
Returns
Rejects outstanding changes on all modified records
and re-insert any records that were removed locally. ...Rejects outstanding changes on all modified records
and re-insert any records that were removed locally. Any phantom records will be removed.
Available since: 1.1.0
Relays 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.
For example if you are extending Grid, you might decide to forward some events from store.
So you can do this inside your initComponent:
this.relayEvents(this.getStore(), ['load']);
The grid instance will then have an observable 'load' event which will be passed the
parameters of the store's load event and any function fired with the grid's load event
would have access to the grid using the this keyword.
Available since: 2.3.0
Parameters
- origin : Object
The Observable whose events this object is to relay.
- events : String[]
Array of event names to relay.
- prefix : String (optional)
A common prefix to prepend to the event names. For example:
this.relayEvents(this.getStore(), ['load', 'clear'], 'store');
Now the grid will forward 'load' and 'clear' events of store as 'storeload' and 'storeclear'.
Returns
- Object
A Destroyable object. An object which implements the destroy method which, when destroyed, removes all relayers. For example:
this.storeRelayers = this.relayEvents(this.getStore(), ['load', 'clear'], 'store');
Can be undone by calling
Ext.destroy(this.storeRelayers);
or
this.store.relayers.destroy();
reload( options )Reloads the store using the last options passed to the load method. ...Reloads the store using the last options passed to the load method.
Available since: 1.1.0
Parameters
- options : Object
A config object which contains options which may override the options passed to the previous load call.
Overrides: Ext.data.AbstractStore.reload
remove( records )Removes the given record from the Store, firing the 'remove' event for each instance that is removed,
plus a single '...Removes the given record from the Store, firing the 'remove' event for each instance that is removed,
plus a single 'datachanged' event after removal.
Available since: 1.1.0
Parameters
- records : Ext.data.Model/Ext.data.Model[]
Model instance or array of instances to remove.
removeAll( silent )Removes all items from the store. ...Removes all items from the store.
Available since: 1.1.0
Parameters
- silent : Boolean
Prevent the clear event from being fired.
Overrides: Ext.data.AbstractStore.removeAll
removeAt( index, [count] ) removeListener( eventName, fn, [scope] )Removes an event handler. ...Removes an event handler.
Available since: 1.1.0
Parameters
- eventName : String
The type of event the handler was associated with.
- fn : Function
The handler to remove. This must be a reference to the function passed into the
addListener call.
- scope : Object (optional)
The scope originally specified for the handler. It must be the same as the
scope argument specified in the original call to addListener or the listener will not be removed.
removeManagedListener( item, ename, [fn], [scope] )Removes listeners that were added by the mon method. ...Removes listeners that were added by the mon method.
Available since: 4.0.0
Parameters
- item : Ext.util.Observable/Ext.Element
The item from which to remove a listener/listeners.
- ename : Object/String
The event name, or an object containing event name properties.
- fn : Function (optional)
If the ename parameter was an event name, this is the handler function.
- scope : Object (optional)
If the ename parameter was an event name, this is the scope (this reference)
in which the handler function is executed.
removeManagedListenerItem( isClear, managedListener )private Resumes automatically syncing the Store with its Proxy. ...Resumes automatically syncing the Store with its Proxy. Only applicable if autoSync is true
Available since: 4.1.0
resumeEvents( )Resumes firing events (see suspendEvents). ...Resumes 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.
Available since: 2.3.0
save( )deprecated Sets the Store's Proxy by string, config object or Proxy instance ...Sets the Store's Proxy by string, config object or Proxy instance
Available since: 4.0.0
Parameters
- proxy : String/Object/Ext.data.proxy.Proxy
The new Proxy, which can be either a type string, a configuration object
or an Ext.data.proxy.Proxy instance
Returns
- Ext.data.proxy.Proxy
The attached Proxy object
setViewSize( viewSize )★privateUsed by to stamp the calculated view size into the Store, and ensure that the Store is not holding more or fewer reco...Used by to stamp the calculated view size into the Store, and ensure that the Store is not holding more or fewer records than it needs to.</p>
<p>In a {@link #buffered Store, the grid's verticalScroller will monitor the rendered height of the grid, and
calculate an appropriate view size. It then must inform the Store of this calculation.
Available since: Ext JS 4.1.3
Parameters
- viewSize : Object
because prefetchData is stored by index
this invalidates all of the prefetchedData
Sorts the data in the Store by on...because prefetchData is stored by index
this invalidates all of the prefetchedData
Sorts the data in the Store by one or more of its properties. Example usage:
//sort by a single field
myStore.sort('myField', 'DESC');
//sorting by multiple fields
myStore.sort([
{
property : 'age',
direction: 'ASC'
},
{
property : 'name',
direction: 'DESC'
}
]);
Internally, Store converts the passed arguments into an array of Ext.util.Sorter instances, and delegates
the actual sorting to its internal Ext.util.MixedCollection.
When passing a single string argument to sort, Store maintains a ASC/DESC toggler per field, so this code:
store.sort('myField');
store.sort('myField');
Is equivalent to this code, because Store handles the toggling automatically:
store.sort('myField', 'ASC');
store.sort('myField', 'DESC');
Available since: 1.1.0
Parameters
- sorters : String/Ext.util.Sorter[] (optional)
Either a string name of one of the fields in this Store's configured
Model, or an array of sorter configurations.
- direction : String (optional)
The overall direction to sort the data by.
Defaults to: "ASC"
Returns
Overrides: Ext.util.Sortable.sort
Get the reference to the class from which this object was instantiated. ...Get the reference to the class from which this object was instantiated. Note that unlike self,
this.statics() is scope-independent and it always returns the class from which it was called, regardless of what
this points to during run-time
Ext.define('My.Cat', {
statics: {
totalCreated: 0,
speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
},
constructor: function() {
var statics = this.statics();
alert(statics.speciesName); // always equals to 'Cat' no matter what 'this' refers to
// equivalent to: My.Cat.speciesName
alert(this.self.speciesName); // dependent on 'this'
statics.totalCreated++;
},
clone: function() {
var cloned = new this.self; // dependent on 'this'
cloned.groupName = this.statics().speciesName; // equivalent to: My.Cat.speciesName
return cloned;
}
});
Ext.define('My.SnowLeopard', {
extend: 'My.Cat',
statics: {
speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard'
},
constructor: function() {
this.callParent();
}
});
var cat = new My.Cat(); // alerts 'Cat', then alerts 'Cat'
var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'
var clone = snowLeopard.clone();
alert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'
alert(clone.groupName); // alerts 'Cat'
alert(My.Cat.totalCreated); // alerts 3
Available since: 4.0.0
Returns
Sums the value of property for each record between start
and end and returns the result. ...Sums the value of property for each record between start
and end and returns the result.
When store is filtered, only sums items within the filter.
Available since: 1.1.0
Parameters
- field : String
A field in each record
- grouped : Boolean (optional)
True to perform the operation for each group
in the store. The value returned will be an object literal with the key being the group
name and the sum for that group being the value. The grouped parameter is only honored if
the store has a groupField.
Returns
- Number
The sum
Suspends automatically syncing the Store with its Proxy. ...Suspends automatically syncing the Store with its Proxy. Only applicable if autoSync is true
Available since: 4.1.0
suspendEvents( queueSuspended )Suspends the firing of all events. ...Suspends the firing of all events. (see resumeEvents)
Available since: 2.3.0
Parameters
- queueSuspended : Boolean
Pass as true to queue up suspended events to be fired
after the resumeEvents call instead of discarding all suspended events.
Synchronizes the store with its proxy. ...Synchronizes the store with its proxy. This asks the proxy to batch together any new, updated
and deleted records in the store, updating the store's internal representation of the records
as each operation completes.
Available since: 4.0.0
Parameters
- options : Object (optional)
Object containing one or more properties supported by the sync method (these get
passed along to the underlying proxy's batch method):
- batch : Ext.data.Batch/Object (optional)
A Ext.data.Batch object (or batch config to apply
to the created batch). If unspecified a default batch will be auto-created as needed.
- callback : Function (optional)
The function to be called upon completion of the sync.
The callback is called regardless of success or failure and is passed the following parameters:
Parameters
- batch : Ext.data.Batch
The batch that was processed,
containing all operations in their current state after processing
- options : Object
The options argument that was originally passed into sync
- success : Function (optional)
The function to be called upon successful completion of the sync. The
success function is called only if no exceptions were reported in any operations. If one or more exceptions
occurred then the failure function will be called instead. The success function is called
with the following parameters:
Parameters
- batch : Ext.data.Batch
The batch that was processed,
containing all operations in their current state after processing
- options : Object
The options argument that was originally passed into sync
- failure : Function (optional)
The function to be called upon unsuccessful completion of the sync. The
failure function is called when one or more operations returns an exception during processing (even if some
operations were also successful). In this case you can check the batch's exceptions array to see exactly which operations had exceptions. The failure function is called with the
following parameters:
Parameters
- batch : Ext.data.Batch
The Ext.data.Batch that was processed, containing all
operations in their current state after processing
- options : Object
The options argument that was originally passed into sync
- scope : Object (optional)
The scope in which to execute any callbacks (i.e. the this object inside
the callback, success and/or failure functions). Defaults to the store's proxy.
Returns
- Ext.data.Store
this
un( eventName, fn, [scope] )Shorthand for removeListener. ...Shorthand for removeListener.
Removes an event handler.
Available since: 1.1.0
Parameters
- eventName : String
The type of event the handler was associated with.
- fn : Function
The handler to remove. This must be a reference to the function passed into the
addListener call.
- scope : Object (optional)
The scope originally specified for the handler. It must be the same as the
scope argument specified in the original call to addListener or the listener will not be removed.
Creates the store.
Available since: 1.1.0
Parameters
- config : Object (optional)
Config object.
Returns
Overrides: Ext.data.AbstractStore.constructor
Adds Model instance to the Store. This method accepts either:
- An array of Model instances or Model configuration objects.
- Any number of Model instance or Model configuration object arguments.
The new Model instances will be added at the end of the existing collection.
Sample usage:
myStore.add({some: 'data'}, {some: 'other data'});
Note that if this Store is sorted, the new Model instances will be inserted at the correct point in the Store to maintain the sort order.
Available since: 1.1.0
Parameters
- model : Ext.data.Model[]/Ext.data.Model...
An array of Model instances or Model configuration objects, or variable number of Model instance or config arguments.
Returns
- Ext.data.Model[]
The model instances that were added
Adds the specified events to the list of events which this Observable may fire.
Available since: 1.1.0
Parameters
Appends an event handler to this object. For example:
myGridPanel.on("mouseover", this.onMouseOver, this);
The method also allows for a single argument to be passed which is a config object containing properties which specify multiple events. For example:
myGridPanel.on({
cellClick: this.onCellClick,
mouseover: this.onMouseOver,
mouseout: this.onMouseOut,
scope: this // Important. Ensure "this" is correct during handler execution
});
One can also specify options for each event handler separately:
myGridPanel.on({
cellClick: {fn: this.onCellClick, scope: this, single: true},
mouseover: {fn: panel.onMouseOver, scope: panel}
});
Names of methods in a specified scope may also be used. Note that
scope MUST be specified to use this option:
myGridPanel.on({
cellClick: {fn: 'onCellClick', scope: this, single: true},
mouseover: {fn: 'onMouseOver', scope: panel}
});
Available since: 1.1.0
Parameters
- eventName : String/Object
The name of the event to listen for. May also be an object who's property names are event names.
- fn : Function (optional)
The method the event invokes, or if
scopeis specified, the name* of the method within the specifiedscope. Will be called with arguments given to fireEvent plus theoptionsparameter described below. - scope : Object (optional)
The scope (
thisreference) 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.
Note: Unlike in ExtJS 3.x, the options object will also be passed as the last argument to every event handler.
This object may contain any of the following properties:
- scope : Object
The scope (
thisreference) in which the handler function is executed. If omitted, defaults to the object which fired the event. - delay : Number
The number of milliseconds to delay the invocation of the handler after the event fires.
- single : Boolean
True to add a handler to handle just the next firing of the event, and then remove itself.
- buffer : Number
Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.
- target : Ext.util.Observable
Only call the handler if the event was fired on the target Observable, not if the event was bubbled up from a child Observable.
- element : String
This option is only valid for listeners bound to Components. The name of a Component property which references an element to add a listener to.
This option is useful during Component construction to add DOM event listeners to elements of Components which will exist only after the Component is rendered. For example, to add a click listener to a Panel's body:
new Ext.panel.Panel({ title: 'The title', listeners: { click: this.handlePanelClick, element: 'body' } }); - destroyable : Boolean (optional)
When specified as
true, the function returns ADestroyableobject. An object which implements thedestroymethod which removes all listeners added in this call.Combining Options
Using the options argument, it is possible to combine different types of listeners:
A delayed, one-time listener.
myPanel.on('hide', this.handleClick, this, { single: true, delay: 100 });Defaults to:
false
- scope : Object
Returns
- Object
Only when the
destroyableoption is specified.A
Destroyableobject. An object which implements thedestroymethod which removes all listeners added in this call. For example:this.btnListeners = = myButton.on({ destroyable: true mouseover: function() { console.log('mouseover'); }, mouseout: function() { console.log('mouseout'); }, click: function() { console.log('click'); } });And when those listeners need to be removed:
Ext.destroy(this.btnListeners);or
this.btnListeners.destroy();
Overrides: Ext.AbstractComponent.addListener
Adds listeners to any Observable object (or Ext.Element) which are automatically removed when this Component is destroyed.
Available since: 4.0.0
Parameters
- item : Ext.util.Observable/Ext.Element
The item to which to add a listener/listeners.
- ename : Object/String
The event name, or an object containing event name properties.
- fn : Function (optional)
If the
enameparameter was an event name, this is the handler function. - scope : Object (optional)
If the
enameparameter was an event name, this is the scope (thisreference) in which the handler function is executed. - options : Object (optional)
If the
enameparameter was an event name, this is the addListener options.
Returns
- Object
Only when the
destroyableoption is specified.A
Destroyableobject. An object which implements thedestroymethod which removes all listeners added in this call. For example:this.btnListeners = = myButton.mon({ destroyable: true mouseover: function() { console.log('mouseover'); }, mouseout: function() { console.log('mouseout'); }, click: function() { console.log('click'); } });And when those listeners need to be removed:
Ext.destroy(this.btnListeners);or
this.btnListeners.destroy();
(Local sort only) Inserts the passed Record into the Store at the index where it should go based on the current sort information.
Available since: 2.3.0
Parameters
- record : Ext.data.Record
A model instance should call this method on the Store it has been joined to.
Available since: 3.4.0
Parameters
- record : Ext.data.Model
The model instance that was edited
A model instance should call this method on the Store it has been joined to.
Available since: 3.4.0
Parameters
- record : Ext.data.Model
The model instance that was edited
- modifiedFieldNames : String[]
Array of field names changed during edit.
A model instance should call this method on the Store it has been joined to..
Available since: 3.4.0
Parameters
- record : Ext.data.Model
The model instance that was edited
Runs the aggregate function for all the records in the store.
When store is filtered, only items within the filter are aggregated.
Available since: 4.0.0
Parameters
- fn : Function
The function to execute. The function is called with a single parameter, an array of records for that group.
- scope : Object (optional)
The scope to execute the function in. Defaults to the store.
- grouped : Boolean (optional)
True to perform the operation for each group in the store. The value returned will be an object literal with the key being the group name and the group average being the value. The grouped parameter is only honored if the store has a groupField.
- args : Array (optional)
Any arguments to append to the function call
Returns
- Object
An object literal with the group names and their appropriate values.
Gets the average value in the store.
When store is filtered, only items within the filter are aggregated.
Available since: 4.0.0
Parameters
- field : String
The field in each record
- grouped : Boolean (optional)
True to perform the operation for each group in the store. The value returned will be an object literal with the key being the group name and the group average being the value. The grouped parameter is only honored if the store has a groupField.
Returns
- Object
The average value, if no items exist, 0.
Caches the records in the prefetch and stripes them with their server-side index.
Available since: 4.1.0
Parameters
- records : Ext.data.Model[]
The records to cache
- The : Ext.data.Operation
associated operation
Call the original method that was previously overridden with override
Ext.define('My.Cat', {
constructor: function() {
alert("I'm a cat!");
}
});
My.Cat.override({
constructor: function() {
alert("I'm going to be a cat!");
this.callOverridden();
alert("Meeeeoooowwww");
}
});
var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
// alerts "I'm a cat!"
// alerts "Meeeeoooowwww"
This method has been deprecated
as of 4.1. Use callParent instead.
Available since: 4.0.0
Parameters
- args : Array/Arguments
The arguments, either an array or the
argumentsobject from the current method, for example:this.callOverridden(arguments)
Returns
- Object
Returns the result of calling the overridden method
Call the "parent" method of the current method. That is the method previously overridden by derivation or by an override (see Ext.define).
Ext.define('My.Base', {
constructor: function (x) {
this.x = x;
},
statics: {
method: function (x) {
return x;
}
}
});
Ext.define('My.Derived', {
extend: 'My.Base',
constructor: function () {
this.callParent([21]);
}
});
var obj = new My.Derived();
alert(obj.x); // alerts 21
This can be used with an override as follows:
Ext.define('My.DerivedOverride', {
override: 'My.Derived',
constructor: function (x) {
this.callParent([x*2]); // calls original My.Derived constructor
}
});
var obj = new My.Derived();
alert(obj.x); // now alerts 42
This also works with static methods.
Ext.define('My.Derived2', {
extend: 'My.Base',
statics: {
method: function (x) {
return this.callParent([x*2]); // calls My.Base.method
}
}
});
alert(My.Base.method(10); // alerts 10
alert(My.Derived2.method(10); // alerts 20
Lastly, it also works with overridden static methods.
Ext.define('My.Derived2Override', {
override: 'My.Derived2',
statics: {
method: function (x) {
return this.callParent([x*2]); // calls My.Derived2.method
}
}
});
alert(My.Derived2.method(10); // now alerts 40
To override a method and replace it and also call the superclass method, use callSuper. This is often done to patch a method to fix a bug.
Available since: 4.0.0
Parameters
- args : Array/Arguments
The arguments, either an array or the
argumentsobject from the current method, for example:this.callParent(arguments)
Returns
- Object
Returns the result of calling the parent method
This method is used by an override to call the superclass method but bypass any overridden method. This is often done to "patch" a method that contains a bug but for whatever reason cannot be fixed directly.
Consider:
Ext.define('Ext.some.Class', {
method: function () {
console.log('Good');
}
});
Ext.define('Ext.some.DerivedClass', {
method: function () {
console.log('Bad');
// ... logic but with a bug ...
this.callParent();
}
});
To patch the bug in DerivedClass.method, the typical solution is to create an
override:
Ext.define('App.paches.DerivedClass', {
override: 'Ext.some.DerivedClass',
method: function () {
console.log('Fixed');
// ... logic but with bug fixed ...
this.callSuper();
}
});
The patch method cannot use callParent to call the superclass method since
that would call the overridden method containing the bug. In other words, the
above patch would only produce "Fixed" then "Good" in the console log, whereas,
using callParent would produce "Fixed" then "Bad" then "Good".
Available since: Ext JS 4.1.3
Parameters
- args : Array/Arguments
The arguments, either an array or the
argumentsobject from the current method, for example:this.callSuper(arguments)
Returns
- Object
Returns the result of calling the superclass method
private
Available since: 3.4.0
Parameters
- isLoad : Object
Overrides: Ext.data.AbstractStore.clearData
Reverts to a view of the Record cache with no filtering applied.
Available since: 1.1.0
Parameters
- suppressEvent : Boolean (optional)
If
truethe filter is cleared silently.For a locally filtered Store, this means that the filter collection is cleared without firing the datachanged event.
For a remotely filtered Store, this means that the filter collection is cleared, but the store is not reloaded from the server.
Overrides: Ext.data.AbstractStore.clearFilter
Removes all listeners for this object including the managed listeners
Available since: 4.0.0
Removes all managed listeners for this object.
Available since: 4.0.0
Collects unique values for a particular dataIndex from this store.
Available since: 1.1.0
Parameters
- dataIndex : String
The property to collect
- allowNull : Boolean (optional)
Pass true to allow null, undefined or empty string values
- bypassFilter : Boolean (optional)
Pass true to collect from all records, even ones which are filtered.
Returns
- Object[]
An array of the unique values
Commits all Records with outstanding changes. To handle updates for changes, subscribe to the Store's update event, and perform updating when the third parameter is Ext.data.Record.COMMIT.
Available since: 1.1.0
Gets the count of items in the store.
When store is filtered, only items within the filter are counted.
Available since: 4.0.0
Parameters
- grouped : Boolean (optional)
True to perform the operation for each group in the store. The value returned will be an object literal with the key being the group name and the count for each group being the value. The grouped parameter is only honored if the store has a groupField.
Returns
- Number
the count
Returns a filter function used to test a the given property's value. Defers most of the work to Ext.util.MixedCollection's createValueMatcher function.
Available since: 3.4.0
Parameters
- property : String
The property to create the filter function for
- value : String/RegExp
The string/regex to compare the property value to
- anyMatch : Boolean (optional)
True if we don't care if the filter value is not the full value.
Defaults to:
false - caseSensitive : Boolean (optional)
True to create a case-sensitive regex.
Defaults to:
false - exactMatch : Boolean (optional)
True to force exact match (^ and $ characters added to the regex). Ignored if anyMatch is true.
Defaults to:
false
Converts a literal to a model, if it's not a model already
Available since: 4.0.0
Parameters
- record : Ext.data.Model/Object
The record to create
Returns
Normalizes an array of filter objects, ensuring that they are all Ext.util.Filter instances
Available since: 4.0.0
Parameters
- filters : Object[]
The filters array
Returns
- Ext.util.Filter[]
Array of Ext.util.Filter objects
Normalizes an array of grouper objects, ensuring that they are all Ext.util.Grouper instances
Available since: 4.0.0
Parameters
- groupers : Object[]
The groupers array
Returns
- Ext.util.Grouper[]
Array of Ext.util.Grouper objects
Normalizes an array of sorter objects, ensuring that they are all Ext.util.Sorter instances
Available since: 4.0.0
Parameters
- sorters : Object[]
The sorters array
Returns
- Ext.util.Sorter[]
Array of Ext.util.Sorter objects
tells the attached proxy to destroy the given records
Available since: 3.4.0
Overrides: Ext.Base.destroy
private override After destroying the Store, clear the page prefetch cache
Available since: 4.0.0
Overrides: Ext.data.AbstractStore.destroyStore
overriden to provide striping of the indexes as sorting occurs. this cannot be done inside of sort because datachanged has already fired and will trigger a repaint of the bound view.
Available since: 4.0.0
Parameters
- sorterFn : Object
Overrides: Ext.data.AbstractStore.doSort
Calls the specified function for each record in the store.
When store is filtered, only loops over the filtered records.
Available since: 1.1.0
Parameters
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.define('Ext.overrides.form.field.Base', {
override: 'Ext.form.field.Base',
// Add functionality to Field's initComponent to enable the change event to bubble
initComponent: function () {
this.callParent();
this.enableBubble('change');
}
});
var myForm = Ext.create('Ext.form.Panel', {
title: 'User Details',
items: [{
...
}],
listeners: {
change: function() {
// Title goes red if form has been modified.
myForm.header.setStyle('color', 'red');
}
}
});
Available since: 3.4.0
Parameters
Filters the loaded set of records by a given set of filters.
By default, the passed filter(s) are added to the collection of filters being used to filter this Store.
To remove existing filters before applying a new set of filters use
// Clear the filter collection without updating the UI
store.clearFilter(true);
see clearFilter.
Alternatively, if filters are configured with an id, then existing filters store may be replaced by new
filters having the same id.
Filtering by single field:
store.filter("email", /\.com$/);
Using multiple filters:
store.filter([
{property: "email", value: /\.com$/},
{filterFn: function(item) { return item.get("age") > 10; }}
]);
Using Ext.util.Filter instances instead of config objects (note that we need to specify the root config option in this case):
store.filter([
Ext.create('Ext.util.Filter', {property: "email", value: /\.com$/, root: 'data'}),
Ext.create('Ext.util.Filter', {filterFn: function(item) { return item.get("age") > 10; }, root: 'data'})
]);
When store is filtered, most of the methods for accessing store data will be working only within the set of filtered records. Two notable exceptions are queryBy and getById.
Available since: 1.1.0
Parameters
- filters : Object[]/Ext.util.Filter[]/String
The set of filters to apply to the data. These are stored internally on the store, but the filtering itself is done on the Store's MixedCollection. See MixedCollection's filter method for filter syntax. Alternatively, pass in a property string
- value : String (optional)
value to filter by (only if using a property string as the first argument)
Overrides: Ext.data.AbstractStore.filter
Filters by a function. The specified function will be called for each
Record in this Store. If the function returns true the Record is included,
otherwise it is filtered out.
When store is filtered, most of the methods for accessing store data will be working only within the set of filtered records. Two notable exceptions are queryBy and getById.
Available since: 1.1.0
Parameters
- fn : Function
The function to be called. It will be passed the following parameters:
Parameters
- record : Ext.data.Model
The record to test for filtering. Access field values using Ext.data.Model.get.
- id : Object
The ID of the Record passed.
- record : Ext.data.Model
- scope : Object (optional)
The scope (this reference) in which the function is executed. Defaults to this Store.
Overrides: Ext.data.AbstractStore.filterBy
Finds the index of the first matching Record in this store by a specific field value.
When store is filtered, finds records only within filter.
Available since: 2.3.0
Parameters
- fieldName : String
The name of the Record field to test.
- value : String/RegExp
Either a string that the field value should begin with, or a RegExp to test against the field.
- startIndex : Number (optional)
The index to start searching at
Defaults to:
0 - anyMatch : Boolean (optional)
True to match any part of the string, not just the beginning
Defaults to:
false - caseSensitive : Boolean (optional)
True for case sensitive comparison
Defaults to:
false - exactMatch : Boolean (optional)
True to force exact match (^ and $ characters added to the regex).
Defaults to:
false
Returns
- Number
The matched index or -1
Find the index of the first matching Record in this Store by a function.
If the function returns true it is considered a match.
When store is filtered, finds records only within filter.
Available since: 2.3.0
Parameters
- fn : Function
The function to be called. It will be passed the following parameters:
Parameters
- record : Ext.data.Model
The record to test for filtering. Access field values using Ext.data.Model.get.
- id : Object
The ID of the Record passed.
- record : Ext.data.Model
- scope : Object (optional)
The scope (this reference) in which the function is executed. Defaults to this Store.
- startIndex : Number (optional)
The index to start searching at
Defaults to:
0
Returns
- Number
The matched index or -1
Finds the index of the first matching Record in this store by a specific field value.
When store is filtered, finds records only within filter.
Available since: 3.4.0
Parameters
- fieldName : String
The name of the Record field to test.
- value : Object
The value to match the field against.
- startIndex : Number (optional)
The index to start searching at
Defaults to:
0
Returns
- Number
The matched index or -1
Finds the first matching Record in this store by a specific field value.
When store is filtered, finds records only within filter.
Available since: 4.0.0
Parameters
- fieldName : String
The name of the Record field to test.
- value : String/RegExp
Either a string that the field value should begin with, or a RegExp to test against the field.
- startIndex : Number (optional)
The index to start searching at
Defaults to:
0 - anyMatch : Boolean (optional)
True to match any part of the string, not just the beginning
Defaults to:
false - caseSensitive : Boolean (optional)
True for case sensitive comparison
Defaults to:
false - exactMatch : Boolean (optional)
True to force exact match (^ and $ characters added to the regex).
Defaults to:
false
Returns
- Ext.data.Model
The matched record or null
Fires the specified event with the passed parameters (minus the event name, plus the options object passed
to addListener).
An event may be set to bubble up an Observable parent hierarchy (See Ext.Component.getBubbleTarget) by calling enableBubble.
Available since: 1.1.0
Parameters
- eventName : String
The name of the event to fire.
- args : Object...
Variable number of parameters are passed to handlers.
Returns
- Boolean
returns false if any of the handlers return false otherwise it returns true.
Fires the groupchange event. Abstracted out so we can use it as a callback
Available since: 4.0.0
Convenience function for getting the first model instance in the store.
When store is filtered, will return first item within the filter.
Available since: 4.0.0
Parameters
- grouped : Boolean (optional)
True to perform the operation for each group in the store. The value returned will be an object literal with the key being the group name and the first record being the value. The grouped parameter is only honored if the store has a groupField.
Returns
- Ext.data.Model/undefined
The first model instance in the store, or undefined
Get the Record at the specified index.
The index is effected by filtering.
Available since: 1.1.0
Parameters
- index : Number
The index of the Record to find.
Returns
- Ext.data.Model
The Record at the passed index. Returns undefined if not found.
Returns an object which is passed in as the listeners argument to proxy.batch inside this.sync. This is broken out into a separate function to allow for customisation of the listeners
Available since: 4.0.0
Returns
- Object
The listeners object
Gets the bubbling parent for an Observable
Available since: 4.0.7
Returns
- Ext.util.Observable
The bubble parent. null is returned if no bubble target exists
Get the Record with the specified id.
This method is not effected by filtering, lookup will be performed from all records inside the store, filtered or not.
Available since: 1.1.0
Parameters
- id : Mixed
The id of the Record to find.
Returns
- Ext.data.Model
The Record with the passed id. Returns null if not found.
Overrides: Ext.data.AbstractStore.getById
Gets the number of records in store.
If using paging, this may not be the total size of the dataset. If the data object used by the Reader contains the dataset size, then the getTotalCount function returns the dataset size. Note: see the Important note in load.
When store is filtered, it's the number of records matching the filter.
Available since: 1.1.0
Returns
- Number
The number of Records in the Store.
Overrides: Ext.data.AbstractStore.getCount
Gets the first sorter from the sorters collection, excluding any groupers that may be in place
Available since: 4.1.1
Returns
- Ext.util.Sorter
The sorter, null if none exist
Returns records grouped by the configured grouper configuration. Sample return value (in this case grouping by genre and then author in a fictional books dataset):
[
{
name: 'Fantasy',
depth: 0,
records: [
//book1, book2, book3, book4
],
children: [
{
name: 'Rowling',
depth: 1,
records: [
//book1, book2
]
},
{
name: 'Tolkein',
depth: 1,
records: [
//book3, book4
]
}
]
}
]
Available since: 4.0.0
Parameters
- sort : Boolean (optional)
trueto call sort before finding groups. Sorting is required to make grouping function correctly so this should only be set to false if the Store is known to already be sorted correctly.Defaults to:
true
Returns
- Object[]
The group data
Returns the string to group on for a given model instance. The default implementation of this method returns the model's groupField, but this can be overridden to group by an arbitrary string. For example, to group by the first letter of a model's 'name' field, use the following code:
Ext.create('Ext.data.Store', {
groupDir: 'ASC',
getGroupString: function(instance) {
return instance.get('name')[0];
}
});
Available since: 4.0.0
Parameters
- instance : Ext.data.Model
The model instance
Returns
- String
The string to compare when forming groups
Returns an array containing the result of applying grouping to the records in this store. See groupField, groupDir and getGroupString. Example for a store containing records with a color field:
var myStore = Ext.create('Ext.data.Store', {
groupField: 'color',
groupDir : 'DESC'
});
myStore.getGroups(); // returns:
[
{
name: 'yellow',
children: [
// all records where the color field is 'yellow'
]
},
{
name: 'red',
children: [
// all records where the color field is 'red'
]
}
]
Group contents are effected by filtering.
Available since: 4.0.0
Parameters
- groupName : String (optional)
Pass in an optional groupName argument to access a specific group as defined by getGroupString.
Returns
This is used recursively to gather the records into the configured Groupers. The data MUST have been sorted for this to work properly (see getGroupData and getGroupsForGrouper) Most of the work is done by getGroupsForGrouper - this function largely just handles the recursion.
Available since: 4.0.0
Parameters
- records : Ext.data.Model[]
The set or subset of records to group
- grouperIndex : Number
The grouper index to retrieve
Returns
- Object[]
The grouped records
Gets all records added or updated since the last commit. Note that the order of records returned is not deterministic and does not indicate the order in which records were modified. Note also that removed records are not included (use getRemovedRecords for that).
Available since: 4.1.0
Returns
- Ext.data.Model[]
The added and updated Model instances
inherit docs
Returns all Model instances that are either currently a phantom (e.g. have no id), or have an ID but have not yet been saved on this Store (this happens when adding a non-phantom record from another Store into this one)
Available since: 4.0.0
Returns
- Ext.data.Model[]
The Model instances
Overrides: Ext.data.AbstractStore.getNewRecords
Returns the proxy currently attached to this proxy instance
Available since: 4.0.0
Returns
- Ext.data.proxy.Proxy
The Proxy instance
Returns a range of Records between specified indices.
This method is effected by filtering.
Available since: 1.1.0
Parameters
- startIndex : Number (optional)
The starting index
Defaults to:
0 - endIndex : Number (optional)
The ending index. Defaults to the last Record in the Store.
Returns
- Ext.data.Model[]
An array of Records
Ideally in the future this will use getModifiedRecords, where there will be a param to getNewRecords & getUpdatedRecords to indicate whether to get only the valid records or grab all of them
Available since: 4.1.0
Returns any records that have been removed from the store but not yet destroyed on the proxy.
Available since: 4.0.0
Returns
- Ext.data.Model[]
The removed Model instances
Returns the total number of Model instances that the Proxy indicates exist. This will usually differ from getCount when using paging - getCount returns the number of records loaded into the Store at the moment, getTotalCount returns the number of records that could be loaded into the Store if the Store contained all data
Available since: 1.1.0
Returns
- Number
The total number of Model instances available via the Proxy. 0 returned if no value has been set via the reader.
inherit docs
Returns all Model instances that have been updated in the Store but not yet synchronized with the Proxy
Available since: 4.0.0
Returns
- Ext.data.Model[]
The updated Model instances
Overrides: Ext.data.AbstractStore.getUpdatedRecords
Checks to see if this object has any listeners for a specified event, or whether the event bubbles. The answer indicates whether the event needs firing or not.
Available since: 1.1.0
Parameters
- eventName : String
The name of the event to check for
Returns
- Boolean
trueif the event is being listened for or bubbles, elsefalse
Get the index of the record within the store.
When store is filtered, records outside of filter will not be found.
Available since: 1.1.0
Parameters
- record : Ext.data.Model
The Ext.data.Model object to find.
Returns
- Number
The index of the passed Record. Returns -1 if not found.
Get the index within the entire dataset. From 0 to the totalCount.
Like indexOf, this method is effected by filtering.
Available since: 4.0.0
Parameters
- record : Ext.data.Model
The Ext.data.Model object to find.
Returns
- Number
The index of the passed Record. Returns -1 if not found.
Initialize configuration for this class. a typical example:
Ext.define('My.awesome.Class', {
// The default config
config: {
name: 'Awesome',
isAwesome: true
},
constructor: function(config) {
this.initConfig(config);
}
});
var awesome = new My.awesome.Class({
name: 'Super Awesome'
});
alert(awesome.getName()); // 'Super Awesome'
Available since: 4.0.0
Parameters
- config : Object
Returns
- Ext.Base
this
Performs initialization of this mixin. Component classes using this mixin should call this method during their own initialization.
Available since: 4.0.0
Inserts Model instances into the Store at the given index and fires the add event. See also add.
Available since: 1.1.0
Parameters
- index : Number
The start index at which to insert the passed Records.
- records : Ext.data.Model[]
An Array of Ext.data.Model objects to add to the store.
Returns
- Ext.data.Model[]
records The added records
Returns true if this store is currently filtered
Available since: 2.3.0
Returns
Overrides: Ext.data.AbstractStore.isFiltered
Checks if the store is currently grouped
Available since: 4.0.0
Returns
- Boolean
trueif the store is grouped.
Returns true if the Store is currently performing a load operation
Available since: 4.0.0
Returns
- Boolean
True if the Store is currently loading
Convenience function for getting the last model instance in the store.
When store is filtered, will return last item within the filter.
Available since: 4.0.0
Parameters
- grouped : Boolean (optional)
True to perform the operation for each group in the store. The value returned will be an object literal with the key being the group name and the last record being the value. The grouped parameter is only honored if the store has a groupField.
Returns
- Ext.data.Model/undefined
The last model instance in the store, or undefined
Loads data into the Store via the configured proxy. This uses the Proxy to make an asynchronous call to whatever storage backend the Proxy uses, automatically adding the retrieved instances into the Store and calling an optional callback if required. Example usage:
store.load({
scope: this,
callback: function(records, operation, success) {
// the operation object
// contains all of the details of the load operation
console.log(records);
}
});
If the callback scope does not need to be set, a function can simply be passed:
store.load(function(records, operation, success) {
console.log('loaded records');
});
Available since: 1.1.0
Parameters
- options : Object/Function (optional)
config object, passed into the Ext.data.Operation object before loading. Additionally
addRecords: truecan be specified to add these records to the existing records, default is to remove the Store's existing records first.
Overrides: Ext.data.AbstractStore.load
Loads an array of data straight into the Store.
Using this method is great if the data is in the correct format already (e.g. it doesn't need to be processed by a reader). If your data requires processing to decode the data structure, use a MemoryProxy instead.
Available since: 1.1.0
Parameters
- data : Ext.data.Model[]/Object[]
Array of data to load. Any non-model instances will be cast into model instances first.
- append : Boolean (optional)
trueto add the records to the existing records in the store,falseto remove the old ones first.Defaults to:
false
Loads a given 'page' of data by setting the start and limit values appropriately. Internally this just causes a normal load operation, passing in calculated 'start' and 'limit' params.
Available since: 4.0.0
Parameters
Loads data via the bound Proxy's reader
Use this method if you are attempting to load data and want to utilize the configured data reader.
Available since: 4.0.7
Parameters
Loads an array of model instances into the store, fires the datachanged event. This should only usually be called internally when loading from the Proxy, when adding records manually use add instead
Available since: 3.4.0
Parameters
- records : Ext.data.Model[]
The array of records to load
- options : Object
Gets the maximum value in the store.
When store is filtered, only items within the filter are aggregated.
Available since: 4.0.0
Parameters
- field : String
The field in each record
- grouped : Boolean (optional)
True to perform the operation for each group in the store. The value returned will be an object literal with the key being the group name and the maximum in the group being the value. The grouped parameter is only honored if the store has a groupField.
Returns
- Object
The maximum value, if no items exist, undefined.
Gets the minimum value in the store.
When store is filtered, only items within the filter are aggregated.
Available since: 4.0.0
Parameters
- field : String
The field in each record
- grouped : Boolean (optional)
True to perform the operation for each group in the store. The value returned will be an object literal with the key being the group name and the minimum in the group being the value. The grouped parameter is only honored if the store has a groupField.
Returns
- Object
The minimum value, if no items exist, undefined.
Shorthand for addManagedListener.
Adds listeners to any Observable object (or Ext.Element) which are automatically removed when this Component is destroyed.
Available since: 4.0.2
Parameters
- item : Ext.util.Observable/Ext.Element
The item to which to add a listener/listeners.
- ename : Object/String
The event name, or an object containing event name properties.
- fn : Function (optional)
If the
enameparameter was an event name, this is the handler function. - scope : Object (optional)
If the
enameparameter was an event name, this is the scope (thisreference) in which the handler function is executed. - options : Object (optional)
If the
enameparameter was an event name, this is the addListener options.
Returns
- Object
Only when the
destroyableoption is specified.A
Destroyableobject. An object which implements thedestroymethod which removes all listeners added in this call. For example:this.btnListeners = = myButton.mon({ destroyable: true mouseover: function() { console.log('mouseover'); }, mouseout: function() { console.log('mouseout'); }, click: function() { console.log('click'); } });And when those listeners need to be removed:
Ext.destroy(this.btnListeners);or
this.btnListeners.destroy();
Shorthand for removeManagedListener.
Removes listeners that were added by the mon method.
Available since: 4.0.2
Parameters
- item : Ext.util.Observable/Ext.Element
The item from which to remove a listener/listeners.
- ename : Object/String
The event name, or an object containing event name properties.
- fn : Function (optional)
If the
enameparameter was an event name, this is the handler function. - scope : Object (optional)
If the
enameparameter was an event name, this is the scope (thisreference) in which the handler function is executed.
Shorthand for addListener.
Appends an event handler to this object. For example:
myGridPanel.on("mouseover", this.onMouseOver, this);
The method also allows for a single argument to be passed which is a config object containing properties which specify multiple events. For example:
myGridPanel.on({
cellClick: this.onCellClick,
mouseover: this.onMouseOver,
mouseout: this.onMouseOut,
scope: this // Important. Ensure "this" is correct during handler execution
});
One can also specify options for each event handler separately:
myGridPanel.on({
cellClick: {fn: this.onCellClick, scope: this, single: true},
mouseover: {fn: panel.onMouseOver, scope: panel}
});
Names of methods in a specified scope may also be used. Note that
scope MUST be specified to use this option:
myGridPanel.on({
cellClick: {fn: 'onCellClick', scope: this, single: true},
mouseover: {fn: 'onMouseOver', scope: panel}
});
Available since: 1.1.0
Parameters
- eventName : String/Object
The name of the event to listen for. May also be an object who's property names are event names.
- fn : Function (optional)
The method the event invokes, or if
scopeis specified, the name* of the method within the specifiedscope. Will be called with arguments given to fireEvent plus theoptionsparameter described below. - scope : Object (optional)
The scope (
thisreference) 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.
Note: Unlike in ExtJS 3.x, the options object will also be passed as the last argument to every event handler.
This object may contain any of the following properties:
- scope : Object
The scope (
thisreference) in which the handler function is executed. If omitted, defaults to the object which fired the event. - delay : Number
The number of milliseconds to delay the invocation of the handler after the event fires.
- single : Boolean
True to add a handler to handle just the next firing of the event, and then remove itself.
- buffer : Number
Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.
- target : Ext.util.Observable
Only call the handler if the event was fired on the target Observable, not if the event was bubbled up from a child Observable.
- element : String
This option is only valid for listeners bound to Components. The name of a Component property which references an element to add a listener to.
This option is useful during Component construction to add DOM event listeners to elements of Components which will exist only after the Component is rendered. For example, to add a click listener to a Panel's body:
new Ext.panel.Panel({ title: 'The title', listeners: { click: this.handlePanelClick, element: 'body' } }); - destroyable : Boolean (optional)
When specified as
true, the function returns ADestroyableobject. An object which implements thedestroymethod which removes all listeners added in this call.Combining Options
Using the options argument, it is possible to combine different types of listeners:
A delayed, one-time listener.
myPanel.on('hide', this.handleClick, this, { single: true, delay: 100 });Defaults to:
false
- scope : Object
Returns
- Object
Only when the
destroyableoption is specified.A
Destroyableobject. An object which implements thedestroymethod which removes all listeners added in this call. For example:this.btnListeners = = myButton.on({ destroyable: true mouseover: function() { console.log('mouseover'); }, mouseout: function() { console.log('mouseout'); }, click: function() { console.log('click'); } });And when those listeners need to be removed:
Ext.destroy(this.btnListeners);or
this.btnListeners.destroy();
may be implemented by store subclasses
Available since: 4.1.0
Removes any records when a write is returned from the server.
Available since: 4.1.0
Parameters
- records : Ext.data.Model[]
The array of removed records
- operation : Ext.data.Operation
The operation that just completed
- success : Boolean
True if the operation was successful
Cancels all pending prefetch requests.
This is called when the page map is cleared.
Any requests which still make it through will be for the previous page map generation (generation is incremented upon clear), and so will be rejected upon arrival.
Available since: Ext JS 4.1.3
Called internally when a Proxy has completed a load request
Available since: 4.0.0
Parameters
- operation : Object
Called after the configured proxy completes a prefetch operation.
Available since: 4.0.0
Parameters
- operation : Ext.data.Operation
The operation that completed
Callback for any write Operation over the Proxy. Updates the Store's MixedCollection to reflect the updates provided by the Proxy
Available since: 4.0.0
Parameters
- operation : Object
may be implemented by store subclasses
Available since: 4.1.0
Determines if the passed page is available in the page cache.
Available since: 4.1.0
Parameters
- page : Number
The page to find in the page cache.
Prefetches data into the store using its configured proxy.
Available since: 4.0.0
Parameters
- options : Object (optional)
config object, passed into the Ext.data.Operation object before loading. See load
Prefetches a page of data.
Available since: 4.0.0
Parameters
- page : Number
The page to prefetch
- options : Object (optional)
config object, passed into the Ext.data.Operation object before loading. See load
Prepares a given class for observable instances. This method is called when a class derives from this class or uses this class as a mixin.
Available since: 4.1.0
Parameters
- T : Function
The class constructor to prepare.
Query all the cached records in this Store by name/value pair. The parameters will be used to generated a filter function that is given to the queryBy method.
This method compliments queryBy by generating the query function automatically.
Available since: 1.1.0
Parameters
- property : String
The property to create the filter function for
- value : String/RegExp
The string/regex to compare the property value to
- anyMatch : Boolean (optional)
trueif we don't care if the filter value is not the full value.Defaults to:
false - caseSensitive : Boolean (optional)
trueto create a case-sensitive regex.Defaults to:
false - exactMatch : Boolean (optional)
trueto force exact match (^ and $ characters added to the regex). Ignored ifanyMatchistrue.Defaults to:
false
Returns
- Ext.util.MixedCollection
Returns an Ext.util.MixedCollection of the matched records
Query all the cached records in this Store using a filtering function. The specified function
will be called with each record in this Store. If the function returns true the record is
included in the results.
This method is not effected by filtering, it will always look from all records inside the store no matter if filter is applied or not.
Available since: 1.1.0
Parameters
- fn : Function
The function to be called. It will be passed the following parameters:
Parameters
- record : Ext.data.Model
The record to test for filtering. Access field values using Ext.data.Model.get.
- id : Object
The ID of the Record passed.
- record : Ext.data.Model
- scope : Object (optional)
The scope (this reference) in which the function is executed Defaults to this Store.
Returns
- Ext.util.MixedCollection
Returns an Ext.util.MixedCollection of the matched records
Determines if the passed range is available in the page cache.
This method has been deprecated since 4.1.0
use rangeCached instead
Available since: 4.0.0
Parameters
Returns
Rejects outstanding changes on all modified records and re-insert any records that were removed locally. Any phantom records will be removed.
Available since: 1.1.0
Relays selected events from the specified Observable as if the events were fired by this.
For example if you are extending Grid, you might decide to forward some events from store. So you can do this inside your initComponent:
this.relayEvents(this.getStore(), ['load']);
The grid instance will then have an observable 'load' event which will be passed the
parameters of the store's load event and any function fired with the grid's load event
would have access to the grid using the this keyword.
Available since: 2.3.0
Parameters
- origin : Object
The Observable whose events this object is to relay.
- events : String[]
Array of event names to relay.
- prefix : String (optional)
A common prefix to prepend to the event names. For example:
this.relayEvents(this.getStore(), ['load', 'clear'], 'store');Now the grid will forward 'load' and 'clear' events of store as 'storeload' and 'storeclear'.
Returns
- Object
A
Destroyableobject. An object which implements thedestroymethod which, when destroyed, removes all relayers. For example:this.storeRelayers = this.relayEvents(this.getStore(), ['load', 'clear'], 'store');Can be undone by calling
Ext.destroy(this.storeRelayers);or
this.store.relayers.destroy();
Reloads the store using the last options passed to the load method.
Available since: 1.1.0
Parameters
- options : Object
A config object which contains options which may override the options passed to the previous load call.
Overrides: Ext.data.AbstractStore.reload
Removes the given record from the Store, firing the 'remove' event for each instance that is removed, plus a single 'datachanged' event after removal.
Available since: 1.1.0
Parameters
- records : Ext.data.Model/Ext.data.Model[]
Model instance or array of instances to remove.
Removes all items from the store.
Available since: 1.1.0
Parameters
- silent : Boolean
Prevent the
clearevent from being fired.
Overrides: Ext.data.AbstractStore.removeAll
Removes an event handler.
Available since: 1.1.0
Parameters
- eventName : String
The type of event the handler was associated with.
- fn : Function
The handler to remove. This must be a reference to the function passed into the addListener call.
- scope : Object (optional)
The scope originally specified for the handler. It must be the same as the scope argument specified in the original call to addListener or the listener will not be removed.
Removes listeners that were added by the mon method.
Available since: 4.0.0
Parameters
- item : Ext.util.Observable/Ext.Element
The item from which to remove a listener/listeners.
- ename : Object/String
The event name, or an object containing event name properties.
- fn : Function (optional)
If the
enameparameter was an event name, this is the handler function. - scope : Object (optional)
If the
enameparameter was an event name, this is the scope (thisreference) in which the handler function is executed.
Resumes automatically syncing the Store with its Proxy. Only applicable if autoSync is true
Available since: 4.1.0
Resumes 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.
Available since: 2.3.0
Sets the Store's Proxy by string, config object or Proxy instance
Available since: 4.0.0
Parameters
- proxy : String/Object/Ext.data.proxy.Proxy
The new Proxy, which can be either a type string, a configuration object or an Ext.data.proxy.Proxy instance
Returns
- Ext.data.proxy.Proxy
The attached Proxy object
Used by to stamp the calculated view size into the Store, and ensure that the Store is not holding more or fewer records than it needs to.</p> <p>In a {@link #buffered Store, the grid's verticalScroller will monitor the rendered height of the grid, and calculate an appropriate view size. It then must inform the Store of this calculation.
Available since: Ext JS 4.1.3
Parameters
- viewSize : Object
because prefetchData is stored by index this invalidates all of the prefetchedData
Sorts the data in the Store by one or more of its properties. Example usage:
//sort by a single field
myStore.sort('myField', 'DESC');
//sorting by multiple fields
myStore.sort([
{
property : 'age',
direction: 'ASC'
},
{
property : 'name',
direction: 'DESC'
}
]);
Internally, Store converts the passed arguments into an array of Ext.util.Sorter instances, and delegates the actual sorting to its internal Ext.util.MixedCollection.
When passing a single string argument to sort, Store maintains a ASC/DESC toggler per field, so this code:
store.sort('myField');
store.sort('myField');
Is equivalent to this code, because Store handles the toggling automatically:
store.sort('myField', 'ASC');
store.sort('myField', 'DESC');
Available since: 1.1.0
Parameters
- sorters : String/Ext.util.Sorter[] (optional)
Either a string name of one of the fields in this Store's configured Model, or an array of sorter configurations.
- direction : String (optional)
The overall direction to sort the data by.
Defaults to:
"ASC"
Returns
Overrides: Ext.util.Sortable.sort
Get the reference to the class from which this object was instantiated. Note that unlike self,
this.statics() is scope-independent and it always returns the class from which it was called, regardless of what
this points to during run-time
Ext.define('My.Cat', {
statics: {
totalCreated: 0,
speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
},
constructor: function() {
var statics = this.statics();
alert(statics.speciesName); // always equals to 'Cat' no matter what 'this' refers to
// equivalent to: My.Cat.speciesName
alert(this.self.speciesName); // dependent on 'this'
statics.totalCreated++;
},
clone: function() {
var cloned = new this.self; // dependent on 'this'
cloned.groupName = this.statics().speciesName; // equivalent to: My.Cat.speciesName
return cloned;
}
});
Ext.define('My.SnowLeopard', {
extend: 'My.Cat',
statics: {
speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard'
},
constructor: function() {
this.callParent();
}
});
var cat = new My.Cat(); // alerts 'Cat', then alerts 'Cat'
var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'
var clone = snowLeopard.clone();
alert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'
alert(clone.groupName); // alerts 'Cat'
alert(My.Cat.totalCreated); // alerts 3
Available since: 4.0.0
Returns
Sums the value of property for each record between start
and end and returns the result.
When store is filtered, only sums items within the filter.
Available since: 1.1.0
Parameters
- field : String
A field in each record
- grouped : Boolean (optional)
True to perform the operation for each group in the store. The value returned will be an object literal with the key being the group name and the sum for that group being the value. The grouped parameter is only honored if the store has a groupField.
Returns
- Number
The sum
Suspends automatically syncing the Store with its Proxy. Only applicable if autoSync is true
Available since: 4.1.0
Suspends the firing of all events. (see resumeEvents)
Available since: 2.3.0
Parameters
- queueSuspended : Boolean
Pass as true to queue up suspended events to be fired after the resumeEvents call instead of discarding all suspended events.
Synchronizes the store with its proxy. This asks the proxy to batch together any new, updated and deleted records in the store, updating the store's internal representation of the records as each operation completes.
Available since: 4.0.0
Parameters
- options : Object (optional)
Object containing one or more properties supported by the sync method (these get passed along to the underlying proxy's batch method):
- batch : Ext.data.Batch/Object (optional)
A Ext.data.Batch object (or batch config to apply to the created batch). If unspecified a default batch will be auto-created as needed.
- callback : Function (optional)
The function to be called upon completion of the sync. The callback is called regardless of success or failure and is passed the following parameters:
Parameters
- batch : Ext.data.Batch
The batch that was processed, containing all operations in their current state after processing
- options : Object
The options argument that was originally passed into sync
- batch : Ext.data.Batch
- success : Function (optional)
The function to be called upon successful completion of the sync. The success function is called only if no exceptions were reported in any operations. If one or more exceptions occurred then the failure function will be called instead. The success function is called with the following parameters:
Parameters
- batch : Ext.data.Batch
The batch that was processed, containing all operations in their current state after processing
- options : Object
The options argument that was originally passed into sync
- batch : Ext.data.Batch
- failure : Function (optional)
The function to be called upon unsuccessful completion of the sync. The failure function is called when one or more operations returns an exception during processing (even if some operations were also successful). In this case you can check the batch's exceptions array to see exactly which operations had exceptions. The failure function is called with the following parameters:
Parameters
- batch : Ext.data.Batch
The Ext.data.Batch that was processed, containing all operations in their current state after processing
- options : Object
The options argument that was originally passed into sync
- batch : Ext.data.Batch
- scope : Object (optional)
The scope in which to execute any callbacks (i.e. the
thisobject inside the callback, success and/or failure functions). Defaults to the store's proxy.
- batch : Ext.data.Batch/Object (optional)
Returns
- Ext.data.Store
this
Shorthand for removeListener.
Removes an event handler.
Available since: 1.1.0
Parameters
- eventName : String
The type of event the handler was associated with.
- fn : Function
The handler to remove. This must be a reference to the function passed into the addListener call.
- scope : Object (optional)
The scope originally specified for the handler. It must be the same as the scope argument specified in the original call to addListener or the listener will not be removed.
Static Methods addMember( name, member )chainableprivatestatic addMembers( members )chainablestaticAdd methods / properties to the prototype of this class. ...Add methods / properties to the prototype of this class.
Ext.define('My.awesome.Cat', {
constructor: function() {
...
}
});
My.awesome.Cat.addMembers({
meow: function() {
alert('Meowww...');
}
});
var kitty = new My.awesome.Cat;
kitty.meow();
Available since: 4.1.0
Parameters
- members : Object
Add / override static properties of this class. ...Add / override static properties of this class.
Ext.define('My.cool.Class', {
...
});
My.cool.Class.addStatics({
someProperty: 'someValue', // My.cool.Class.someProperty = 'someValue'
method1: function() { ... }, // My.cool.Class.method1 = function() { ... };
method2: function() { ... } // My.cool.Class.method2 = function() { ... };
});
Available since: 4.0.2
Parameters
- members : Object
Returns
- Ext.Base
this
Borrow another class' members to the prototype of this class. ...Borrow another class' members to the prototype of this class.
Ext.define('Bank', {
money: '$$$',
printMoney: function() {
alert('$$$$$$$');
}
});
Ext.define('Thief', {
...
});
Thief.borrow(Bank, ['money', 'printMoney']);
var steve = new Thief();
alert(steve.money); // alerts '$$$'
steve.printMoney(); // alerts '$$$$$$$'
Available since: 4.0.2
Parameters
- fromClass : Ext.Base
The class to borrow members from
- members : Array/String
The names of the members to borrow
Returns
- Ext.Base
this
createAlias( alias, origin )staticCreate aliases for existing prototype methods. ...Create aliases for existing prototype methods. Example:
Ext.define('My.cool.Class', {
method1: function() { ... },
method2: function() { ... }
});
var test = new My.cool.Class();
My.cool.Class.createAlias({
method3: 'method1',
method4: 'method2'
});
test.method3(); // test.method1()
My.cool.Class.createAlias('method5', 'method3');
test.method5(); // test.method3() -> test.method1()
Available since: 4.0.2
Parameters
- alias : String/Object
The new method name, or an object to set multiple aliases. See
flexSetter
- origin : String/Object
The original method name
Get the current class' name in string format. ...Get the current class' name in string format.
Ext.define('My.cool.Class', {
constructor: function() {
alert(this.self.getName()); // alerts 'My.cool.Class'
}
});
My.cool.Class.getName(); // 'My.cool.Class'
Available since: 4.0.4
Returns
- String
className
implement( )deprecatedstaticAdds members to class. ...Adds members to class.
This method has been deprecated since 4.1
Use addMembers instead.
Available since: 4.0.2
mixin( name, mixinClass )chainableprivatestatic onExtended( fn, scope )chainableprivatestatic Override members of this class. ...Override members of this class. Overridden methods can be invoked via
callParent.
Ext.define('My.Cat', {
constructor: function() {
alert("I'm a cat!");
}
});
My.Cat.override({
constructor: function() {
alert("I'm going to be a cat!");
this.callParent(arguments);
alert("Meeeeoooowwww");
}
});
var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
// alerts "I'm a cat!"
// alerts "Meeeeoooowwww"
As of 4.1, direct use of this method is deprecated. Use Ext.define
instead:
Ext.define('My.CatOverride', {
override: 'My.Cat',
constructor: function() {
alert("I'm going to be a cat!");
this.callParent(arguments);
alert("Meeeeoooowwww");
}
});
The above accomplishes the same result but can be managed by the Ext.Loader
which can properly order the override and its target class and the build process
can determine whether the override is needed based on the required state of the
target class (My.Cat).
This method has been deprecated since 4.1.0
Use Ext.define instead
Available since: 4.0.2
Parameters
- members : Object
The properties to add to this class. This should be
specified as an object literal containing one or more properties.
Returns
- Ext.Base
this class
Add methods / properties to the prototype of this class.
Ext.define('My.awesome.Cat', {
constructor: function() {
...
}
});
My.awesome.Cat.addMembers({
meow: function() {
alert('Meowww...');
}
});
var kitty = new My.awesome.Cat;
kitty.meow();
Available since: 4.1.0
Parameters
- members : Object
Add / override static properties of this class.
Ext.define('My.cool.Class', {
...
});
My.cool.Class.addStatics({
someProperty: 'someValue', // My.cool.Class.someProperty = 'someValue'
method1: function() { ... }, // My.cool.Class.method1 = function() { ... };
method2: function() { ... } // My.cool.Class.method2 = function() { ... };
});
Available since: 4.0.2
Parameters
- members : Object
Returns
- Ext.Base
this
Borrow another class' members to the prototype of this class.
Ext.define('Bank', {
money: '$$$',
printMoney: function() {
alert('$$$$$$$');
}
});
Ext.define('Thief', {
...
});
Thief.borrow(Bank, ['money', 'printMoney']);
var steve = new Thief();
alert(steve.money); // alerts '$$$'
steve.printMoney(); // alerts '$$$$$$$'
Available since: 4.0.2
Parameters
- fromClass : Ext.Base
The class to borrow members from
- members : Array/String
The names of the members to borrow
Returns
- Ext.Base
this
Create aliases for existing prototype methods. Example:
Ext.define('My.cool.Class', {
method1: function() { ... },
method2: function() { ... }
});
var test = new My.cool.Class();
My.cool.Class.createAlias({
method3: 'method1',
method4: 'method2'
});
test.method3(); // test.method1()
My.cool.Class.createAlias('method5', 'method3');
test.method5(); // test.method3() -> test.method1()
Available since: 4.0.2
Parameters
- alias : String/Object
The new method name, or an object to set multiple aliases. See flexSetter
- origin : String/Object
The original method name
Get the current class' name in string format.
Ext.define('My.cool.Class', {
constructor: function() {
alert(this.self.getName()); // alerts 'My.cool.Class'
}
});
My.cool.Class.getName(); // 'My.cool.Class'
Available since: 4.0.4
Returns
- String
className
Adds members to class.
This method has been deprecated since 4.1
Use addMembers instead.
Available since: 4.0.2
Override members of this class. Overridden methods can be invoked via callParent.
Ext.define('My.Cat', {
constructor: function() {
alert("I'm a cat!");
}
});
My.Cat.override({
constructor: function() {
alert("I'm going to be a cat!");
this.callParent(arguments);
alert("Meeeeoooowwww");
}
});
var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
// alerts "I'm a cat!"
// alerts "Meeeeoooowwww"
As of 4.1, direct use of this method is deprecated. Use Ext.define instead:
Ext.define('My.CatOverride', {
override: 'My.Cat',
constructor: function() {
alert("I'm going to be a cat!");
this.callParent(arguments);
alert("Meeeeoooowwww");
}
});
The above accomplishes the same result but can be managed by the Ext.Loader which can properly order the override and its target class and the build process can determine whether the override is needed based on the required state of the target class (My.Cat).
This method has been deprecated since 4.1.0
Use Ext.define instead
Available since: 4.0.2
Parameters
- members : Object
The properties to add to this class. This should be specified as an object literal containing one or more properties.
Returns
- Ext.Base
this class
Events
Fired when a Model instance has been added to this Store.
Available since: 1.1.0
Parameters
- store : Ext.data.Store
The store
- records : Ext.data.Model[]
The Model instances that were added
- index : Number
The index at which the instances were inserted
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires before a request is made for a new data object. If the beforeload handler returns false the load action will be canceled.
Available since: 1.1.0
Parameters
- store : Ext.data.Store
This Store
- operation : Ext.data.Operation
The Ext.data.Operation object that will be passed to the Proxy to load the Store
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires before a prefetch occurs. Return false to cancel.
Available since: 4.0.0
Parameters
- this : Ext.data.Store
- operation : Ext.data.Operation
The associated operation.
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fired before a call to sync is executed. Return false from any listener to cancel the sync
Available since: 4.0.0
Parameters
- options : Object
Hash of all records to be synchronized, broken down into create, update and destroy
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fired at the end of the remove method when all records in the passed array have been removed.
If many records may be removed in one go, then it is more efficient to listen for this event and perform any processing for a bulk remove than to listen for many remove events.
Available since: 4.1.2
Parameters
- store : Ext.data.Store
The Store object
- records : Ext.data.Model[]
The array of records that were removed (In the order they appear in the Store)
- indexes : Number[]
The indexes of the records that were removed
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fired after the removeAll method is called.
Available since: 1.1.0
Parameters
- this : Ext.data.Store
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires whenever the records in the Store have changed in some way - this could include adding or removing records, or updating the data in existing records
Available since: 1.1.0
Parameters
- this : Ext.data.Store
The data store
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fired whenever the grouping in the grid changes.
Available since: 4.0.0
Parameters
- store : Ext.data.Store
The store.
- groupers : Ext.util.Grouper[]
The array of grouper objects.
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires whenever the store reads data from a remote data source.
Available since: 1.1.0
Parameters
- this : Ext.data.Store
- records : Ext.data.Model[]
An array of records
- successful : Boolean
True if the operation was successful.
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires when this store's underlying reader (available via the proxy) provides new metadata. Metadata usually consists of new field definitions, but can include any configuration data required by an application, and can be processed as needed in the event handler. This event is currently only fired for JsonReaders.
Available since: 1.1.0
Parameters
- this : Ext.data.Store
- meta : Object
The JSON metadata
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires whenever records have been prefetched.
Available since: 4.1.0
Parameters
- this : Ext.data.Store
- records : Ext.data.Model[]
An array of records.
- successful : Boolean
trueif the operation was successful. - operation : Ext.data.Operation
The associated operation.
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires when the data cache has changed in a bulk manner (e.g., it has been sorted, filtered, etc.) and a widget that is using this Store as a Record cache should refresh its view.
Available since: 4.1.0
Parameters
- this : Ext.data.Store
The data store
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fired when a Model instance has been removed from this Store.
If many records may be removed in one go, then it is more efficient to listen for the bulkremove event and perform any processing for a bulk remove than to listen for this remove event.
Available since: 1.1.0
Parameters
- store : Ext.data.Store
The Store object
- record : Ext.data.Model
The record that was removed
- index : Number
The index of the record that was removed
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires when a Model instance has been updated.
Available since: 1.1.0
Parameters
- this : Ext.data.Store
- record : Ext.data.Model
The Model instance that was updated
- operation : String
The update operation being performed. Value may be one of:
Ext.data.Model.EDIT Ext.data.Model.REJECT Ext.data.Model.COMMIT - modifiedFieldNames : String[]
Array of field names changed during edit.
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.
Fires whenever a successful write has been made via the configured Proxy
Available since: 3.4.0
Parameters
- store : Ext.data.Store
This Store
- operation : Ext.data.Operation
The Operation object that was used in the write
- eOpts : Object
The options object passed to Ext.util.Observable.addListener.