Instance Methods
Aborts a pending load operation. If the record is not loading, this does nothing.
This method applies a versioned, deprecation declaration to this class. This
is typically called by the deprecated
config.
Begins an edit. While in edit mode, no events (e.g.. the update
event) are
relayed to the containing store. When an edit has begun, it must be followed by
either endEdit
or cancelEdit
.
Calculate all summary fields on this record.
Available since: 6.5.0
records :
Ext.data.Model[]
The records to use for calculation.
Helper function used by afterEdit, afterReject and afterCommit. Calls the given
method on the Ext.data.Store
that this instance has joined, if any.
The store function will always be called with the model instance as its single
argument. If this model is joined to a Ext.data.NodeStore, then this method calls
the given method on the NodeStore and the associated Ext.data.TreeStore.
funcName :
String
The name function to call on each store.
args :
Array
(optional)
The arguments to pass to the method. This instance is
always inserted as the first argument.
Call the original method that was previously overridden with Ext.Base#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"
args :
Array/Arguments
The arguments, either an array or the arguments
object
from the current method, for example: this.callOverridden(arguments)
:
Object
Returns the result of calling the overridden method
Deprecated since version 4.1.0
Use method-callParent instead.
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 and private methods.
Ext.define('My.Derived2', {
extend: 'My.Base',
// privates: {
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',
// privates: {
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
method-callSuper. This is often done to patch a method to fix a bug.
args :
Array/Arguments
The arguments, either an array or the arguments
object
from the current method, for example: this.callParent(arguments)
:
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', {
extend: 'Ext.some.Class',
method: function () {
console.log('Bad');
// ... logic but with a bug ...
this.callParent();
}
});
To patch the bug in Ext.some.DerivedClass.method
, the typical solution is to create an
override:
Ext.define('App.patches.DerivedClass', {
override: 'Ext.some.DerivedClass',
method: function () {
console.log('Fixed');
// ... logic but with bug fixed ...
this.callSuper();
}
});
The patch method cannot use method-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".
args :
Array/Arguments
The arguments, either an array or the arguments
object
from the current method, for example: this.callSuper(arguments)
:
Object
Returns the result of calling the superclass method
Cancels all changes made in the current edit operation.
Creates a clone of this record. States like dropped
, phantom
and dirty
are
all preserved in the cloned record.
session :
Ext.data.Session
(optional)
The session to which the new record
belongs.
:
Ext.data.Model
Usually called by the Ext.data.Store which owns the model instance. Commits all changes made to the
instance since either creation or the last commit operation.
Developers should subscribe to the Ext.data.Store#event-update event to have their code notified of commit
operations.
silent :
Boolean
(optional)
Pass true
to skip notification of the owning store of the change.
Defaults to: false
modifiedFieldNames :
String[]
(optional)
Array of field names changed during sync with server if known.
Omit or pass null
if unknown. An empty array means that it is known that no fields were modified
by the server's response.
Defaults to false.
Checks if this event fully contains a date range.
start :
Ext.calendar.date.Range/Date
The range, or the start date.
end :
Date
The end date. This is not required if a range is passed for start.
:
Boolean
true
if this event contains a date range.
Creates a clean copy of this record. The returned record will not consider any its
fields as modified.
To generate a phantom instance with a new id pass null
:
var rec = record.copy(null); // clone the record but no id (one is generated)
newId :
String
(optional)
A new id, defaults to the id of the instance being copied.
See idProperty
.
session :
Ext.data.Session
(optional)
The session to which the new record
belongs.
:
Ext.data.Model
Copies data from the passed record into this record. If the passed record is undefined, does nothing.
If this is a phantom record (represented only in the client, with no corresponding database entry), and
the source record is not a phantom, then this record acquires the id of the source record.
sourceRecord :
Ext.data.Model
The record to copy data from.
:
String[]
The names of the fields which changed value.
This method is called to cleanup an object and its resources. After calling
this method, the object should not be used any further in any way, including
access to its methods and properties.
To prevent potential memory leaks, all object references will be nulled
at the end of destruction sequence, unless clearPropertiesOnDestroy
is set to false
.
Destroys member properties by name.
If a property name is the name of a config, the getter is not invoked, so
if the config has not been initialized, nothing will be done.
The property will be destroyed, and the corrected name (if the property is a config
and config names are prefixed) will set to null
in this object's dictionary.
args :
String...
One or more names of the properties to destroy and remove from the object.
Marks this record as dropped
and waiting to be deleted on the server. When a
record is dropped, it is automatically removed from all association stores and
any child records associated to this record are also dropped (a "cascade delete")
depending on the cascade
parameter.
Available since: 5.0.0
cascade :
Boolean
(optional)
Pass false
to disable the cascade to drop child
records.
Defaults to: true
Ends an edit. If any data was modified, the containing store is notified
(ie, the store's update
event will fire).
silent :
Boolean
(optional)
True to not notify any stores of the change.
modifiedFieldNames :
String[]
(optional)
Array of field names changed during edit.
Destroys the model using the configured proxy. The erase action is
asynchronous. Any processing of the erased record should be done in a callback.
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
],
proxy: {
type: 'ajax',
url: 'server.url'
}
});
var user = new MyApp.model.User({
name: 'Foo'
});
// pass the phantom record data to the server to be saved
user.save({
success: function(record, operation) {
// do something if the save succeeded
// erase the created record
record.erase({
failure: function(record, operation) {
// do something if the erase failed
},
success: function(record, operation) {
// do something if the erase succeeded
},
callback: function(record, operation, success) {
// do something if the erase succeeded or failed
}
});
}
});
NOTE: If a phantom record is erased it will not be processed via the
proxy. However, any passed success
or callback
functions will be called.
The options param is an Ext.data.operation.Destroy config object
containing success, failure and callback functions, plus optional scope.
options :
Object
Options to pass to the proxy.
:
Ext.data.operation.Destroy
Returns the value of the given field.
:
Object
The value of the specified field.
Gets whether this event is an all day event.
:
Boolean
true
if this is an all day event.
Gets all of the data from this Models loaded associations. It does this
recursively. For example if we have a User which hasMany Orders, and each Order
hasMany OrderItems, it will return an object like this:
{
orders: [
{
id: 123,
status: 'shipped',
orderItems: [
...
]
}
]
}
result :
Object
(optional)
The object on to which the associations will be added. If
no object is passed one is created. This object is then returned.
options :
Boolean/Object
(optional)
An object containing options describing the data
desired.
associated :
Boolean
(optional)
Pass true
to include associated data from
other associated records.
Defaults to:
true
changes :
Boolean
(optional)
Pass true
to only include fields that
have been modified. Note that field modifications are only tracked for fields that
are not declared with persist
set to false
. In other words, only persistent
fields have changes tracked so passing true
for this means options.persist
is
redundant.
Defaults to:
false
critical :
Boolean
(optional)
Pass true
to include fields set as critical
.
This is only meaningful when options.changes
is true
since critical fields may
not have been modified.
persist :
Boolean
(optional)
Pass true
to only return persistent fields.
This is implied when options.changes
is set to true
.
serialize :
Boolean
(optional)
Pass true
to invoke the serialize
method on the returned fields.
Defaults to:
false
:
Object
The nested data set for the Model's loaded associations.
Get the calendar for this event.
:
Ext.calendar.model.Calendar
The calendar, null
if it does
not exist.
Get the id for the calendar this event belongs to.
:
Object
Gets an object of only the fields that have been modified since this record was
created or committed. Only persistent fields are tracked in the modified
set so
this method will only return changes to persistent fields.
For more control over the returned data, see getData
.
:
Object
Get a specified color for this event.
:
String
Returns a specified config property value. If the name parameter is not passed,
all current configuration options will be returned as key value pairs.
name :
String
(optional)
The name of the config property to get.
peek :
Boolean
(optional)
true
to peek at the raw value without calling the getter.
Defaults to: false
ifInitialized :
Boolean
(optional)
true
to only return the initialized property value,
not the raw config value, and not to trigger initialization. Returns undefined
if the
property has not yet been initialized.
Defaults to: false
:
Object
The config property value.
Returns the array of fields that are declared as critical (must always send).
:
Ext.data.field.Field[]
Gets all values for each field in this model and returns an object containing the
current data. This can be tuned by passing an options
object with various
properties describing the desired result. Passing true
simply returns all fields
and all associated record data.
To selectively gather some associated data, the options
object can be used as
follows:
var data = order.getData({
associated: {
orderItems: true
}
});
This will include all data fields as well as an "orderItems" array with the data
for each OrderItem
. To include the associated Item
for each OrderItem
, the
call would look like:
var data = order.getData({
associated: {
orderItems: {
item: true
}
}
});
options :
Boolean/Object
(optional)
An object containing options describing the data
desired. If true
is passed it is treated as an object with associated
set to
true
.
associated :
Boolean / Object
(optional)
Pass true
to recursively
include all associated data. This is equivalent to pass true
as the only argument.
See getAssociatedData
. If associated
is an object, it describes the specific
associations to gather.
Defaults to:
false
changes :
Boolean
(optional)
Pass true
to only include fields that
have been modified. Note that field modifications are only tracked for fields that
are not declared with persist
set to false
. In other words, only persistent
fields have changes tracked so passing true
for this means options.persist
is
redundant.
Defaults to:
false
critical :
Boolean
(optional)
Pass true
to include fields set as critical
.
This is only meaningful when options.changes
is true
since critical fields may
not have been modified.
persist :
Boolean
(optional)
Pass true
to only return persistent fields.
This is implied when options.changes
is set to true
.
serialize :
Boolean
(optional)
Pass true
to invoke the serialize
method on the returned fields.
Defaults to:
false
:
Object
An object containing all the values in this model.
Gets the description for this event.
:
String
Get the duration of this event in minutes.
:
Number
The duration of the event in minutes.
Get the end date for this event (including time).
The date should be UTC.
:
Date
Returns the unique ID allocated to this model instance as defined by idProperty
.
:
Number/String
Returns the initial configuration passed to the constructor when
instantiating this class.
Given this example Ext.button.Button definition and instance:
Ext.define('MyApp.view.Button', {
extend: 'Ext.button.Button',
xtype: 'mybutton',
scale: 'large',
enableToggle: true
});
var btn = Ext.create({
xtype: 'mybutton',
renderTo: Ext.getBody(),
text: 'Test Button'
});
Calling btn.getInitialConfig()
would return an object including the config
options passed to the create
method:
xtype: 'mybutton',
renderTo: // The document body itself
text: 'Test Button'
Calling btn.getInitialConfig('text')
returns 'Test Button'.
name :
String
(optional)
Name of the config option to return.
:
Object/Mixed
The full config object or a single config value
when name
parameter specified.
Returns the original value of a modified field. If there is no modified value,
undefined
will be return. Also see isModified.
fieldName :
String
The name of the field for which to return the original value.
:
Object
Gets the names of all the fields that were modified during an edit.
:
String[]
The array of modified field names.
This method returns the value of a field given its name prior to its most recent
change.
:
Object
The value of the given field prior to its current value. undefined
if there is no previous value;
Gets a range for this event,
:
Ext.calendar.date.Range
Get the start date for this event (including time).
The date should be UTC.
:
Date
Get the title for this event.
:
String
Returns the array of fields that are declared as non-persist or "transient".
Available since: 5.0.0
:
Ext.data.field.Field[]
Returns the Ext.data.Validation
record holding the results of this record's
validators
. This record is lazily created on first request and is then kept on
this record to be updated later.
See the class description for more about validators
.
Available since: 5.0.0
refresh :
Boolean
(optional)
Pass false
to not call the refresh
method on the
validation instance prior to returning it. Pass true
to force a refresh
of the
validation instance. By default the returned record is only refreshed if changes
have been made to this record.
:
Ext.data.Validation
The Validation
record for this record.
Currently this only checks the loading state, this method exists for API
parity with stores.
:
Boolean
true
if the model is loading or has a pending load.
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'
:
Ext.Base
Checks if this event is fully contained by the passed range.
start :
Ext.calendar.date.Range/Date
The range, or the start date.
end :
Date
The end date. This is not required if a range is passed for start.
:
Boolean
true
if this event is fully contained by the passed range.
Gets the dirty state of this record.
:
Boolean
Checks if this event is editable. This means that it can be removed
or modified via the UI.
Checks if two values are equal, taking into account certain special factors, for
example dates.
field :
String/Ext.data.field.Field
(optional)
The field name or instance.
:
Boolean
True if the values are equal.
Checks whether this model is loading data from the proxy.
:
Boolean
true
if in a loading state.
Returns true if the passed field name has been modified
since the load or last commit.
:
Boolean
Gets the phantom state of this record.
:
Boolean
Checks whether this event spans a full day or more.
:
Boolean
true
if the event is an all day event or spans
over 24 hours or more.
Checks if the model is valid. See getValidation.
:
Boolean
True if the model is valid.
Tells this model instance that an observer is looking at it.
owner :
Ext.data.Store
The store or other owner object to which this model
has been added.
Adds a "destroyable" object to an internal list of objects that will be destroyed
when this instance is destroyed (via destroy
).
:
Object
Loads the model instance using the configured proxy. The load action
is asynchronous. Any processing of the loaded record should be done in a
callback.
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
],
proxy: {
type: 'ajax',
url: 'server.url'
}
});
var user = new MyApp.model.User();
user.load({
scope: this,
failure: function(record, operation) {
// do something if the load failed
},
success: function(record, operation) {
// do something if the load succeeded
},
callback: function(record, operation, success) {
// do something whether the load succeeded or failed
}
});
The options param is an Ext.data.operation.Read config object containing
success, failure and callback functions, plus optional scope.
options :
Object
(optional)
Options to pass to the proxy.
success :
Function
A function to be called when the
model is processed by the proxy successfully.
The callback is passed the following parameters:
operation :
Ext.data.operation.Operation
failure :
Function
A function to be called when the
model is unable to be processed by the server.
The callback is passed the following parameters:
operation :
Ext.data.operation.Operation
callback :
Function
A function to be called whether the proxy
transaction was successful or not.
The callback is passed the following parameters:
operation :
Ext.data.operation.Operation
success :
Boolean
true
if the operation was successful.
scope :
Object
The scope in which to execute the callback
functions. Defaults to the model instance.
:
Ext.data.operation.Read
Merge incoming data from the server when this record exists
in an active session. This method is not called if this record is
loaded directly via load. The default behaviour is to use incoming
data if the record is not dirty, otherwise the data is
discarded. This method should be overridden in subclasses to
provide a different behavior.
Available since: 6.5.0
data :
Object
The model data retrieved from the server.
Checks if any part of this event occurs within the specified
date range.
start :
Ext.calendar.date.Range/Date
The range, or the start date.
end :
Date
The end date. This is not required if a range is passed for start.
:
Boolean
true
if any part of this events occurs in the range.
Called when an associated record instance has been set.
role :
Ext.data.schema.Role
Called when the model id is changed.
This method is called by the Ext.data.reader.Reader after loading a model from
the server. This is after processing any inline associations that are available.
This is a template method. a hook into the functionality of this
class. Feel free to override it in child classes.
Usually called by the Ext.data.Store to which this model instance has been joined. Rejects
all changes made to the model instance since either creation, or the last commit operation. Modified fields are
reverted to their original values.
Developers should subscribe to the Ext.data.Store#event-update event to have their code notified of reject
operations.
silent :
Boolean
(optional)
true
to skip notification of the owning store of the change.
Defaults to: false
Saves the model instance using the configured proxy. The save action
is asynchronous. Any processing of the saved record should be done in a callback.
Create example:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
],
proxy: {
type: 'ajax',
url: 'server.url'
}
});
var user = new MyApp.model.User({
name: 'Foo'
});
// pass the phantom record data to the server to be saved
user.save({
failure: function(record, operation) {
// do something if the save failed
},
success: function(record, operation) {
// do something if the save succeeded
},
callback: function(record, operation, success) {
// do something whether the save succeeded or failed
}
});
The response from a create operation should include the ID for the newly created
record:
// sample response
{
success: true,
id: 1
}
// the id may be nested if the proxy's reader has a rootProperty config
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
proxy: {
type: 'ajax',
url: 'server.url',
reader: {
type: 'ajax',
rootProperty: 'data'
}
}
});
// sample nested response
{
success: true,
data: {
id: 1
}
}
(Create + ) Update example:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
],
proxy: {
type: 'ajax',
url: 'server.url'
}
});
var user = new MyApp.model.User({
name: 'Foo'
});
user.save({
success: function(record, operation) {
record.set('name', 'Bar');
// updates the remote record via the proxy
record.save();
}
});
(Create + ) Destroy example - see also erase:
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
],
proxy: {
type: 'ajax',
url: 'server.url'
}
});
var user = new MyApp.model.User({
name: 'Foo'
});
user.save({
success: function(record, operation) {
record.drop();
// destroys the remote record via the proxy
record.save();
}
});
NOTE: If a phantom record is dropped and subsequently
saved it will not be processed via the proxy. However, any passed success
or callback
functions will be called.
The options param is an Operation config object containing success, failure and
callback functions, plus optional scope. The type of Operation depends on the
state of the model being saved.
options :
Object
Options to pass to the proxy.
:
Ext.data.operation.Create/Ext.data.operation.Update/Ext.data.operation.Destroy
The operation instance for saving this model. The type of operation returned
depends on the model state at the time of the action.
Sets the given field to the given value. For example:
record.set('name', 'value');
This method can also be passed an object containing multiple values to set at once.
For example:
record.set({
name: 'value',
age: 42
});
The following store events are fired when the modified record belongs to a store:
fieldName :
String/Object
The field to set, or an object containing key/value
pairs.
newValue :
Object
The value for the field (if fieldName
is a string).
options :
Object
(optional)
Options for governing this update.
convert :
Boolean
(optional)
Set to false
to prevent any converters from
being called during the set operation. This may be useful when setting a large bunch of
raw values.
Defaults to:
true
dirty :
Boolean
(optional)
Pass false
if the field values are to be
understood as non-dirty (fresh from the server). When true
, this change will be
reflected in the modified
collection.
Defaults to:
true
commit :
Boolean
(optional)
Pass true
to call the commit method
after setting fields. If this option is passed, the usual after change processing will
be bypassed. Commit will be called even if there are no field changes.
Defaults to:
false
silent :
Boolean
(optional)
Pass true
to suppress notification of any
changes made by this call. Use with caution.
Defaults to:
false
:
String[]
The array of modified field names or null if nothing was modified.
Sets the allDay state of this event.
Sets the calendar of this event. Also sets the underlying
calendar id.
calendar :
Ext.calendar.model.Calendar
dirty :
Boolean
(optional)
false
to not mark this record as dirty. Useful
for inferring a calendar id when doing nested loading.
Defaults to: true
Sets the calendar id for this event.
dirty :
Boolean
(optional)
false
to not mark this record as dirty. Useful
for inferring a calendar id when doing nested loading.
Defaults to: true
Sets the color for this event.
Sets a single/multiple configuration options.
name :
String/Object
The name of the property to set, or a set of key value pairs to set.
value :
Object
(optional)
The value to set for the name parameter.
:
Ext.Base
Sets the data for this event in bulk.
A :
Object
set of key value pairs for this event, matching to the
property names, eg:
{
color: '#FFF',
startDate: new Date(),
descrption: 'Foo',
title: 'Bar'
}
Sets the description for this event.
Sets the duration for this event. Leaves
the getStartDate unmodified.
Sets the model instance's id field to the given id.
options :
Object
(optional)
Sets the start and end date for this event.
range :
Ext.calendar.date.Range/Date
The range, or the start date.
end :
Date
The end date (if the first parameter was not the range).
Set the session for this record.
session :
Ext.data.Session
Sets the title for this event.
Get the reference to the class from which this object was instantiated. Note that unlike Ext.Base#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
:
Ext.Class
Returns a url-suitable string for this model instance. By default this just returns the name of the Model class
followed by the instance ID - for example an instance of MyApp.model.User with ID 123 will return 'user/123'.
:
String
The url string for this model instance.
Tells this model instance that it has been removed from the store.
owner :
Ext.data.Store
The store or other owner object from which this
model has been removed.
Destroys a given set of linked
objects. This is only needed if
the linked object is being destroyed before this instance.
names :
String[]
The names of the linked objects to destroy.
:
Ext.Base
Validates the current data against all of its configured validators. The
returned collection holds an object for each reported problem from a validator
.
:
Ext.data.ErrorCollection
Deprecated since version 5.0
Use getValidation instead.
Static Methods
Adds new config properties to this class. This is called for classes when they
are declared, then for any mixins that class may define and finally for any
overrides defined that target the class.
mixinClass :
Ext.Class
(optional)
The mixin class if the configs are from a mixin.
This method adds the given set of fields to this model class.
Available since: 5.0.0
newFields :
String[]/Object[]
The new fields to add. Based on the name
of a field this may replace a previous field definition.
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();
members :
Object
The members to add to this class.
isStatic :
Boolean
(optional)
Pass true
if the members are static.
Defaults to: false
privacy :
Boolean
(optional)
Pass true
if the members are private. This
only has meaning in debug mode and only for methods.
Defaults to: false
:
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() { ... };
});
:
Ext.Base
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 '$$$$$$$'
fromClass :
Ext.Base
The class to borrow members from
members :
Array/String
The names of the members to borrow
:
Ext.Base
Create a new instance of this Class.
Ext.define('My.cool.Class', {
...
});
My.cool.Class.create({
someConfig: true
});
All parameters are passed to the constructor of the class.
:
Object
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()
alias :
String/Object
The new method name, or an object to set multiple aliases. See
flexSetter
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'
:
String
Returns the configured Proxy for this Model.
:
Ext.data.proxy.Proxy
Get the summary model type. If summary is specified, it is
a new type that extends from this type. If not, then it is the same
model type.
Available since: 6.5.0
:
Ext.Class
Asynchronously loads a model instance by id. Any processing of the loaded
record should be done in a callback.
Sample usage:
Ext.define('MyApp.User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
]
});
MyApp.User.load(10, {
scope: this,
failure: function(record, operation) {
//do something if the load failed
},
success: function(record, operation) {
//do something if the load succeeded
},
callback: function(record, operation, success) {
//do something whether the load succeeded or failed
}
});
id :
Number/String
The ID of the model to load.
NOTE: The model returned must have an ID matching the param in the load
request.
options :
Object
(optional)
The options param is an
Ext.data.operation.Read config object containing success, failure and
callback functions, plus optional scope.
success :
Function
A function to be called when the
model is processed by the proxy successfully.
The callback is passed the following parameters:
operation :
Ext.data.operation.Operation
failure :
Function
A function to be called when the
model is unable to be processed by the server.
The callback is passed the following parameters:
operation :
Ext.data.operation.Operation
callback :
Function
A function to be called whether the proxy
transaction was successful or not.
The callback is passed the following parameters:
operation :
Ext.data.operation.Operation
success :
Boolean
true
if the operation was
successful.
scope :
Object
The scope in which to execute the callback
functions. Defaults to the model instance.
session :
Ext.data.Session
(optional)
The session for this record.
:
Ext.data.Model
The newly created model. Note that the model will
(probably) still be loading once it is returned from this method. To do any
post-processing on the data, the appropriate place to do see is in the
callback.
Create a model while also parsing any data for associations.
Available since: 6.5.0
data :
Object
The model data, including any associated data if required. The type of
data should correspond to what the configured data reader would expect.
session :
Ext.data.Session
(optional)
:
Ext.data.Model
Used internally by the mixins pre-processor
:
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"
Direct use of this method should be rare. 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).
members :
Object
The properties to add to this class. This should be
specified as an object literal containing one or more properties.
:
Ext.Base
Removes the given set of fields from this model.
Available since: 5.0.0
removeFields :
Boolean/String[]
The names of fields to remove or true
to remove all existing fields. Removes are processed first followed by adds so
if a field name appears in newFields
as well that field will effectively be
added (however, in that case there is no need to include the field in this
array).
This method replaces the specified set of fields with a given set of new fields.
Fields should normally be considered immutable, but if the timing is right (that
is, before derived classes are declared), it is permissible to change the fields
collection.
Available since: 5.0.0
newFields :
String[]/Object[]
The new fields to add. Based on the name
of a field this may replace a previous field definition.
removeFields :
Boolean/String[]
The names of fields to remove or true
to remove all existing fields. Removes are processed first followed by adds so
if a field name appears in newFields
as well that field will effectively be
added (however, in that case there is no need to include the field in this
array).
Sets the Proxy to use for this model. Accepts any options that can be accepted by
Ext.createByAlias.
proxy :
String/Object/Ext.data.proxy.Proxy
:
Ext.data.proxy.Proxy