Model Class
+ + + + +Attribute-based data model with APIs for getting, setting, validating, and +syncing attribute values, as well as events for being notified of model changes.
+ +In most cases, you'll want to create your own subclass of Y.Model and
+customize it to meet your needs. In particular, the sync() and validate()
+methods are meant to be overridden by custom implementations. You may also want
+to override the parse() method to parse non-generic server responses.
Constructor
+Model
+
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
- Index + + +
- Methods + + +
- Properties + + +
- Attributes + + +
- Events + +
Item Index
+ + +Methods
+ +-
+
+
- + _addAttrs + + + + + +
- + _addLazyAttr + + + + + +
- + _aggregateAttrs + + + + + +
- + _attrCfgHash + + + + + +
- + _baseDestroy + + + + + +
- + _baseInit + + + + + +
- + _cloneDefaultValue + + + + + +
- + _defAttrChangeFn + + + + + +
- + _defDestroyFn + + + + + +
- + _defInitFn + + + + + +
- + _destroyHierarchy + + + + + +
- + _filterAdHocAttrs + + + + + +
- + _filterAttrCfgs + + + + + +
- + _fireAttrChange + + + + + +
- + _getAttr + + + + + +
- + _getAttrCfg + + + + + +
- + _getAttrCfgs + + + + + +
- + _getAttrInitVal + + + + + +
- + _getAttrs + + + + + +
- + _getClasses + + + + + +
- + _getFullType + + + + + +
- + _getStateVal + + + + + +
- + _getType + + + + + +
- + _initAttrHost + + + + + +
- + _initAttribute + + + + + +
- + _initAttrs + + + + + +
- + _initBase + + + + + +
- + _initHierarchy + + + + + +
- + _initHierarchyData + + + + + +
- + _isLazyAttr + + + + + +
- + _monitor + + + + + +
- + _normAttrVals + + + + + +
- + _parse + + + + + +
- + _parseType + + + + + +
- + _preInitEventCfg + + + + + +
- + _protectAttrs + + + + deprecated + + + +
- + _publish + + + + + +
- + _set + + + + + +
- + _setAttr + + + + + +
- + _setAttrs + + + + + +
- + _setAttrVal + + + + + +
- + _setStateVal + + + + + +
- + _validate + + + + + +
- + addAttr + + + + + +
- + addAttrs + + + + + +
- + addTarget + + + + + +
- + after + + + + + +
- + attrAdded + + + + + +
- + before + + + + + +
- + bubble + + + + + +
- + destroy + + + + + +
- + detach + + + + + +
- + detachAll + + + + + +
- + fire + + + + + +
- + generateClientId + + + + + +
- + get + + + + + +
- + getAsHTML + + + + + +
- + getAsURL + + + + + +
- + getAttrs + + + + + +
- + getEvent + + + + + +
- + getTargets + + + + + +
- + init + + + + + +
- + isModified + + + + + +
- + isNew + + + + + +
- + load + + + + + +
- + modifyAttr + + + + + +
- + on + + + + + +
- + once + + + + + +
- + onceAfter + + + + + +
- + parse + + + + + +
- + parseType + + + + + +
- + publish + + + + + +
- + removeAttr + + + + + +
- + removeTarget + + + + + +
- + reset + + + + + +
- + save + + + + + +
- + set + + + + + +
- + setAttrs + + + + + +
- + subscribe + + + + deprecated + + + +
- + sync + + + + + +
- + toJSON + + + + + +
- + toString + + + + + +
- + undo + + + + + +
- + unsubscribe + + + + deprecated + + + +
- + unsubscribeAll + + + + deprecated + + + +
- + validate + + + + + +
Properties
+ +-
+
+
- + _allowAdHocAttrs + + + + + +
- + _isYUIModel + + + + + +
- + changed + + + + + +
- + idAttribute + + + + + +
- + lastChange + + + + + +
- + lists + + + + + +
- + name + + + + deprecated + + + +
Attributes
+ +-
+
+
- + clientId + + +
- + destroyed + + +
- + id + + +
- + initialized + + +
Methods
+ + +_addAttrs
+
+
+ -
+
+
-
+
+
cfgs+ +
+
+ -
+
+
values+ +
+
+ -
+
+
lazy+ +
+
+
Implementation behind the public addAttrs method.
+ +This method is invoked directly by get if it encounters a scenario +in which an attribute's valueFn attempts to obtain the +value an attribute in the same group of attributes, which has not yet +been added (on demand initialization).
+Parameters:
+ +-
+
+
-
+
+
cfgs+ Object + + + + +++ + +An object with attribute name/configuration pairs.
+
+
+ -
+
+
values+ Object + + + + +++ + +An object with attribute name/value pairs, defining the initial values to apply. +Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only.
+
+
+ -
+
+
lazy+ Boolean + + + + +++ + +Whether or not to delay the intialization of these attributes until the first call to get/set. +Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. +See addAttr.
+
+
+
_addLazyAttr
+
+
+ -
+
+
-
+
+
name+ +
+
+ -
+
+
[lazyCfg]+ +
+
+
Finishes initializing an attribute which has been lazily added.
+Parameters:
+ + +_aggregateAttrs
+
+
+ -
+
+
-
+
+
allAttrs+ +
+
+
A helper method, used by _initHierarchyData to aggregate +attribute configuration across the instances class hierarchy.
+ +The method will protect the attribute configuration value to protect the statically defined +default value in ATTRS if required (if the value is an object literal, array or the +attribute configuration has cloneDefaultValue set to shallow or deep).
+Parameters:
+ +-
+
+
-
+
+
allAttrs+ Array + + + + +++ + +An array of ATTRS definitions across classes in the hierarchy +(subclass first, Base last)
+
+
+
Returns:
+ +_attrCfgHash
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility method to define the attribute hash used to filter/whitelist property mixes for +this class for iteration performance reasons.
+_baseDestroy
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ Internal destroy implementation for BaseCore
+_baseInit
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ Internal initialization implementation for BaseCore
+_cloneDefaultValue
+
+
+ -
+
+
-
+
+
cfg+ +
+
+
This method assumes that the value has already been checked to be an object. +Since it's on a critical path, we don't want to re-do the check.
+Parameters:
+ +-
+
+
-
+
+
cfg+ Object + + + + ++ ++ + +
+
+
_defAttrChangeFn
+
+
+ -
+
+
-
+
+
e+ +
+
+
Duckpunches the _defAttrChangeFn() provided by Y.Attribute so we can
+have a single global notification when a change event occurs.
Parameters:
+ +-
+
+
-
+
+
e+ EventFacade + + + + ++ ++ + +
+
+
_defDestroyFn
+
+
+ -
+
+
-
+
+
e+ +
+
+
Default destroy event handler
+Parameters:
+ +-
+
+
-
+
+
e+ EventFacade + + + + +++ + +Event object
+
+
+
_defInitFn
+
+
+ -
+
+
-
+
+
e+ +
+
+
Default init event handler
+Parameters:
+ +-
+
+
-
+
+
e+ EventFacade + + + + +++ + +Event object, with a cfg property which +refers to the configuration object passed to the constructor.
+
+
+
_destroyHierarchy
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ Destroys the class hierarchy for this instance by invoking +the destructor method on the prototype of each class in the hierarchy.
+_filterAdHocAttrs
+
+
+ -
+
+
-
+
+
allAttrs+ +
+
+ -
+
+
userVals+ +
+
+
Parameters:
+ +-
+
+
-
+
+
allAttrs+ Object + + + + +++ + +The set of all attribute configurations for this instance. +Attributes will be removed from this set, if they belong to the filtered class, so +that by the time all classes are processed, allCfgs will be empty.
+
+
+ -
+
+
userVals+ Object + + + + +++ + +The config object passed in by the user, from which adhoc attrs are to be filtered.
+
+
+
Returns:
+ +_filterAttrCfgs
+
+
+ -
+
+
-
+
+
clazz+ +
+
+ -
+
+
allCfgs+ +
+
+
A helper method used when processing ATTRS across the class hierarchy during +initialization. Returns a disposable object with the attributes defined for +the provided class, extracted from the set of all attributes passed in.
+Parameters:
+ +-
+
+
-
+
+
clazz+ Function + + + + +++ + +The class for which the desired attributes are required.
+
+
+ -
+
+
allCfgs+ Object + + + + +++ + +The set of all attribute configurations for this instance. +Attributes will be removed from this set, if they belong to the filtered class, so +that by the time all classes are processed, allCfgs will be empty.
+
+
+
Returns:
+ +_fireAttrChange
+
+
+ -
+
+
-
+
+
attrName+ +
+
+ -
+
+
subAttrName+ +
+
+ -
+
+
currVal+ +
+
+ -
+
+
newVal+ +
+
+ -
+
+
opts+ +
+
+ -
+
+
[cfg]+ +
+
+
Utility method to help setup the event payload and fire the attribute change event.
+Parameters:
+ +-
+
+
-
+
+
attrName+ String + + + + +++ + +The name of the attribute
+
+
+ -
+
+
subAttrName+ String + + + + +++ + +The full path of the property being changed, +if this is a sub-attribute value being change. Otherwise null.
+
+
+ -
+
+
currVal+ Any + + + + +++ + +The current value of the attribute
+
+
+ -
+
+
newVal+ Any + + + + +++ + +The new value of the attribute
+
+
+ -
+
+
opts+ Object + + + + +++ + +Any additional event data to mix into the attribute change event's event facade.
+
+
+ -
+
+
[cfg]+ Object + optional + + + + +++ + +The attribute config stored in State, if already available.
+
+
+
_getAttr
+
+
+ -
+
+
-
+
+
name+ +
+
+
Provides the common implementation for the public get method, +allowing Attribute hosts to over-ride either method.
+ +See get for argument details.
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +The name of the attribute.
+
+
+
Returns:
+ +_getAttrCfg
+
+
+ -
+
+
-
+
+
name+ +
+
+
Returns an object with the configuration properties (and value) +for the given attribute. If attrName is not provided, returns the +configuration properties for all attributes.
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +Optional. The attribute name. If not provided, the method will return the configuration for all attributes.
+
+
+
Returns:
+ +_getAttrCfgs
+
+
+ ()
+
+
+
+
+ Object
+
+
+
+
+
+
+ protected
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an aggregated set of attribute configurations, by traversing +the class hierarchy.
+Returns:
+ +_getAttrInitVal
+
+
+ -
+
+
-
+
+
attr+ +
+
+ -
+
+
cfg+ +
+
+ -
+
+
initValues+ +
+
+
Returns the initial value of the given attribute from +either the default configuration provided, or the +over-ridden value if it exists in the set of initValues +provided and the attribute is not read-only.
+Parameters:
+ + +Returns:
+ +_getAttrs
+
+
+ -
+
+
-
+
+
attrs+ +
+
+
Implementation behind the public getAttrs method, to get multiple attribute values.
+Parameters:
+ +-
+
+
-
+
+
attrs+ Array | boolean + + + + +++ + +Optional. An array of attribute names. If omitted, all attribute values are +returned. If set to true, all attributes modified from their initial values are returned.
+
+
+
Returns:
+ +_getClasses
+
+
+ ()
+
+
+
+
+ Function[]
+
+
+
+
+
+
+ protected
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the class hierarchy for this object, with BaseCore being the last class in the array.
+Returns:
+ +_getFullType
+
+
+ -
+
+
-
+
+
type+ +
+
+
Returns the fully qualified type, given a short type string. +That is, returns "foo:bar" when given "bar" if "foo" is the configured prefix.
+ +NOTE: This method, unlike _getType, does no checking of the value passed in, and +is designed to be used with the low level _publish() method, for critical path +implementations which need to fast-track publish for performance reasons.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The short type to prefix
+
+
+
Returns:
+ +_getStateVal
+
+
+ -
+
+
-
+
+
name+ +
+
+ -
+
+
[cfg]+ +
+
+
Gets the stored value for the attribute, from either the +internal state object, or the state proxy if it exits
+Parameters:
+ + +Returns:
+ +_getType
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ If the instance has a prefix attribute and the +event type is not prefixed, the instance prefix is +applied to the supplied type.
+_initAttrHost
+
+
+ -
+
+
-
+
+
attrs+ +
+
+ -
+
+
values+ +
+
+ -
+
+
lazy+ +
+
+
Constructor logic for attributes. Initializes the host state, and sets up the inital attributes passed to the +constructor.
+Parameters:
+ +-
+
+
-
+
+
attrs+ Object + + + + +++ + +The attributes to add during construction (passed through to addAttrs). + These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor.
+
+
+ -
+
+
values+ Object + + + + +++ + +The initial attribute values to apply (passed through to addAttrs). + These are not merged/cloned. The caller is responsible for isolating user provided values if required.
+
+
+ -
+
+
lazy+ Boolean + + + + +++ + +Whether or not to add attributes lazily (passed through to addAttrs).
+
+
+
_initAttribute
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes AttributeCore
+_initAttrs
+
+
+ -
+
+
-
+
+
attrs+ +
+
+ -
+
+
values+ +
+
+ -
+
+
lazy+ +
+
+
Utility method to set up initial attributes defined during construction, +either through the constructor.ATTRS property, or explicitly passed in.
+Parameters:
+ +-
+
+
-
+
+
attrs+ Object + + + + +++ + +The attributes to add during construction (passed through to addAttrs). + These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor.
+
+
+ -
+
+
values+ Object + + + + +++ + +The initial attribute values to apply (passed through to addAttrs). + These are not merged/cloned. The caller is responsible for isolating user provided values if required.
+
+
+ -
+
+
lazy+ Boolean + + + + +++ + +Whether or not to add attributes lazily (passed through to addAttrs).
+
+
+
_initBase
+
+
+ -
+
+
-
+
+
config+ +
+
+
Internal construction logic for BaseCore.
+Parameters:
+ +-
+
+
-
+
+
config+ Object + + + + +++ + +The constructor configuration object
+
+
+
_initHierarchy
+
+
+ -
+
+
-
+
+
userVals+ +
+
+
Initializes the class hierarchy for the instance, which includes +initializing attributes for each class defined in the class's +static ATTRS property and +invoking the initializer method on the prototype of each class in the hierarchy.
+Parameters:
+ +-
+
+
-
+
+
userVals+ Object + + + + +++ + +Object with configuration property name/value pairs
+
+
+
_initHierarchyData
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ A helper method used by _getClasses and _getAttrCfgs, which determines both +the array of classes and aggregate set of attribute configurations +across the class hierarchy for the instance.
+_isLazyAttr
+
+
+ -
+
+
-
+
+
name+ +
+
+
Checks whether or not the attribute is one which has been +added lazily and still requires initialization.
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +The name of the attribute
+
+
+
Returns:
+ +_monitor
+
+
+ -
+
+
-
+
+
what+ +
+
+ -
+
+
eventType+ +
+
+ -
+
+
o+ +
+
+
This is the entry point for the event monitoring system. +You can monitor 'attach', 'detach', 'fire', and 'publish'. +When configured, these events generate an event. click -> +clickattach, clickdetach, click_publish -- these can +be subscribed to like other events to monitor the event +system. Inividual published events can have monitoring +turned on or off (publish can't be turned off before it +it published) by setting the events 'monitor' config.
+Parameters:
+ +-
+
+
-
+
+
what+ String + + + + +++ + +'attach', 'detach', 'fire', or 'publish'
+
+
+ -
+
+
eventType+ String | CustomEvent + + + + +++ + +The prefixed name of the event being monitored, or the CustomEvent object.
+
+
+ -
+
+
o+ Object + + + + +++ + +Information about the event interaction, such as + fire() args, subscription category, publish config
+
+
+
_normAttrVals
+
+
+ -
+
+
-
+
+
valueHash+ +
+
+
Utility method to normalize attribute values. The base implementation +simply merges the hash to protect the original.
+Parameters:
+ +-
+
+
-
+
+
valueHash+ Object + + + + +++ + +An object with attribute name/value pairs
+
+
+
Returns:
+ +_parse
+
+
+ -
+
+
-
+
+
response+ +
+
+
Calls the public, overrideable parse() method and returns the result.
Override this method to provide a custom pre-parsing implementation. This
+provides a hook for custom persistence implementations to "prep" a response
+before calling the parse() method.
Parameters:
+ +-
+
+
-
+
+
response+ Any + + + + +++ + +Server response.
+
+
+
Returns:
+ +_parseType
+
+
+ ()
+
+
+
+
+
+
+
+ private
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an array with the detach key (if provided), +and the prefixed event name from _getType +Y.on('detachcategory| menu:click', fn)
+_preInitEventCfg
+
+
+ -
+
+
-
+
+
config+ +
+
+
Handles the special on, after and target properties which allow the user to +easily configure on and after listeners as well as bubble targets during +construction, prior to init.
+Parameters:
+ +-
+
+
-
+
+
config+ Object + + + + +++ + +The user configuration object
+
+
+
_protectAttrs
+
+
+ -
+
+
-
+
+
attrs+ +
+
+
Utility method to protect an attribute configuration +hash, by merging the entire object and the individual +attr config objects.
+Parameters:
+ +-
+
+
-
+
+
attrs+ Object + + + + +++ + +A hash of attribute to configuration object pairs.
+
+
+
Returns:
+ +_publish
+
+
+ -
+
+
-
+
+
fullType+ +
+
+ -
+
+
etOpts+ +
+
+ -
+
+
ceOpts+ +
+
+
The low level event publish implementation. It expects all the massaging to have been done
+outside of this method. e.g. the type to fullType conversion. It's designed to be a fast
+path publish, which can be used by critical code paths to improve performance.
Parameters:
+ +-
+
+
-
+
+
fullType+ String + + + + +++ + +The prefixed type of the event to publish.
+
+
+ -
+
+
etOpts+ Object + + + + +++ + +The EventTarget specific configuration to mix into the published event.
+
+
+ -
+
+
ceOpts+ Object + + + + +++ + +The publish specific configuration to mix into the published event.
+
+
+
Returns:
+ +etOpts or ceOpts, this will
+be the default CustomEvent instance, and can be configured independently.
+
+ _set
+
+
+ -
+
+
-
+
+
name+ +
+
+ -
+
+
val+ +
+
+ -
+
+
[opts]+ +
+
+
Allows setting of readOnly/writeOnce attributes. See set for argument details.
+Parameters:
+ + +Returns:
+ +_setAttr
+
+
+ -
+
+
-
+
+
name+ +
+
+ -
+
+
value+ +
+
+ -
+
+
[opts]+ +
+
+ -
+
+
force+ +
+
+
Provides the common implementation for the public set and protected _set methods.
+ +See set for argument details.
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +The name of the attribute.
+
+
+ -
+
+
value+ Any + + + + +++ + +The value to set the attribute to.
+
+
+ -
+
+
[opts]+ Object + optional + + + + +++ + +Optional data providing the circumstances for the change.
+
+
+ -
+
+
force+ Boolean + + + + +++ + +If true, allows the caller to set values for +readOnly or writeOnce attributes which have already been set.
+
+
+
Returns:
+ +_setAttrs
+
+
+ -
+
+
-
+
+
attrs+ +
+
+ -
+
+
[opts]+ +
+
+
Implementation behind the public setAttrs method, to set multiple attribute values.
+Parameters:
+ + +Returns:
+ +_setAttrVal
+
+
+ -
+
+
-
+
+
attrName+ +
+
+ -
+
+
subAttrName+ +
+
+ -
+
+
prevVal+ +
+
+ -
+
+
newVal+ +
+
+ -
+
+
[opts]+ +
+
+ -
+
+
[attrCfg]+ +
+
+
Updates the stored value of the attribute in the privately held State object, +if validation and setter passes.
+Parameters:
+ +-
+
+
-
+
+
attrName+ String + + + + +++ + +The attribute name.
+
+
+ -
+
+
subAttrName+ String + + + + +++ + +The sub-attribute name, if setting a sub-attribute property ("x.y.z").
+
+
+ -
+
+
prevVal+ Any + + + + +++ + +The currently stored value of the attribute.
+
+
+ -
+
+
newVal+ Any + + + + +++ + +The value which is going to be stored.
+
+
+ -
+
+
[opts]+ Object + optional + + + + +++ + +Optional data providing the circumstances for the change.
+
+
+ -
+
+
[attrCfg]+ Object + optional + + + + +++ + +Optional config hash for the attribute. This is added for performance along the critical path, +where the calling method has already obtained the config from state.
+
+
+
Returns:
+ +_setStateVal
+
+
+ -
+
+
-
+
+
name+ +
+
+ -
+
+
value+ +
+
+
Sets the stored value for the attribute, in either the +internal state object, or the state proxy if it exits
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +The name of the attribute
+
+
+ -
+
+
value+ Any + + + + +++ + +The value of the attribute
+
+
+
_validate
+
+
+ -
+
+
-
+
+
attributes+ +
+
+ -
+
+
callback+ +
+
+
Calls the public, overridable validate() method and fires an error event
+if validation fails.
addAttr
+
+
+ -
+
+
-
+
+
name+ +
+
+ -
+
+
config+ +
+
+ -
+
+
lazy+ +
+
+
Duckpunches the addAttr method provided by Y.Attribute to keep the
+id attribute’s value and a custom id attribute’s (if provided) value
+in sync when adding the attributes to the model instance object.
Marked as protected to hide it from Model's public API docs, even though +this is a public method in Attribute.
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +The name of the attribute.
+
+
+ -
+
+
config+ Object + + + + +++ + +An object with attribute configuration property/value + pairs, specifying the configuration for the attribute.
+
+
+ -
+
+
lazy+ Boolean + + + + +++ + +(optional) Whether or not to add this attribute lazily + (on the first call to get/set).
+
+
+
Returns:
+ +addAttrs
+
+
+ -
+
+
-
+
+
cfgs+ +
+
+ -
+
+
values+ +
+
+ -
+
+
lazy+ +
+
+
Configures a group of attributes, and sets initial values.
+ ++NOTE: This method does not isolate the configuration object by merging/cloning. +The caller is responsible for merging/cloning the configuration object if required. +
+Parameters:
+ +-
+
+
-
+
+
cfgs+ Object + + + + +++ + +An object with attribute name/configuration pairs.
+
+
+ -
+
+
values+ Object + + + + +++ + +An object with attribute name/value pairs, defining the initial values to apply. +Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only.
+
+
+ -
+
+
lazy+ Boolean + + + + +++ + +Whether or not to delay the intialization of these attributes until the first call to get/set. +Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. +See addAttr.
+
+
+
Returns:
+ +addTarget
+
+
+ -
+
+
-
+
+
o+ +
+
+
Registers another EventTarget as a bubble target. Bubble order +is determined by the order registered. Multiple targets can +be specified.
+ +Events can only bubble if emitFacade is true.
+ +Included in the event-custom-complex submodule.
+Parameters:
+ +-
+
+
-
+
+
o+ EventTarget + + + + +++ + +the target to add
+
+
+
after
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
[context]+ +
+
+ -
+
+
[arg*]+ +
+
+
Subscribe to a custom event hosted by this object. The +supplied callback will execute after any listeners add +via the subscribe method, and after the default function, +if configured for the event, has executed.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The name of the event
+
+
+ -
+
+
fn+ Function + + + + +++ + +The callback to execute in response to the event
+
+
+ -
+
+
[context]+ Object + optional + + + + +++ + +Override
+thisobject in callback
+
+ -
+
+
[arg*]+ Any + optional + + + + +++ + +0..n additional arguments to supply to the subscriber
+
+
+
Returns:
+ +attrAdded
+
+
+ -
+
+
-
+
+
name+ +
+
+
Checks if the given attribute has been added to the host
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +The name of the attribute to check.
+
+
+
Returns:
+ +before
+
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes the callback before a DOM event, custom event +or method. If the first argument is a function, it +is assumed the target is a method. For DOM and custom +events, this is an alias for Y.on.
+ +For DOM and custom events: +type, callback, context, 0-n arguments
+ +For methods: +callback, object (method host), methodName, context, 0-n arguments
+Returns:
+ +bubble
+
+
+ -
+
+
-
+
+
evt+ +
+
+
Propagate an event. Requires the event-custom-complex module.
+Parameters:
+ +-
+
+
-
+
+
evt+ CustomEvent + + + + +++ + +the custom event to propagate
+
+
+
Returns:
+ +destroy
+
+
+ -
+
+
-
+
+
[options]+ +
+
+ -
+
+
[callback]+ +
+
+
Destroys this model instance and removes it from its containing lists, if +any.
+ +The callback, if one is provided, will be called after the model is +destroyed.
+ +If options.remove is true, then this method delegates to the sync()
+method to delete the model from the persistence layer, which is an
+asynchronous action. In this case, the callback (if provided) will be
+called after the sync layer indicates success or failure of the delete
+operation.
Parameters:
+ +-
+
+
-
+
+
[options]+ Object + optional + + + + +++ + +Sync options. It's up to the custom sync + implementation to determine what options it supports or requires, if + any.
+-
+
+
-
+
+
[remove=false]+ Boolean + optional + + +++ + +If
+true, the model will be + deleted via the sync layer in addition to the instance being destroyed.
+
+
+
+ -
+
+
-
+
+
[callback]+ Callback + optional + + + + +++ + +Called after the model has been destroyed (and + deleted via the sync layer if
+options.removeistrue).-
+
+
-
+
+
err+ Error | Null + + +++ + +If an error occurred, this parameter will + contain the error. Otherwise err will be
+null.
+
+
+
+ -
+
+
detach
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
context+ +
+
+
Detach one or more listeners the from the specified event
+Parameters:
+ +-
+
+
-
+
+
type+ String | Object + + + + +++ + +Either the handle to the subscriber or the + type of event. If the type + is not specified, it will attempt to remove + the listener from all hosted events.
+
+
+ -
+
+
fn+ Function + + + + +++ + +The subscribed function to unsubscribe, if not + supplied, all subscribers will be removed.
+
+
+ -
+
+
context+ Object + + + + +++ + +The custom object passed to subscribe. This is + optional, but if supplied will be used to + disambiguate multiple listeners that are the same + (e.g., you subscribe many object using a function + that lives on the prototype)
+
+
+
Returns:
+ +detachAll
+
+
+ -
+
+
-
+
+
type+ +
+
+
Removes all listeners from the specified event. If the event type +is not specified, all listeners from all hosted custom events will +be removed.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The type, or name of the event
+
+
+
fire
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
arguments+ +
+
+
Fire a custom event by name. The callback functions will be executed +from the context specified when the event was created, and with the +following parameters.
+ +If the custom event object hasn't been created, then the event hasn't +been published and it has no subscribers. For performance sake, we +immediate exit in this case. This means the event won't bubble, so +if the intention is that a bubble target be notified, the event must +be published on this object first.
+ +The first argument is the event type, and any additional arguments are +passed to the listeners as parameters. If the first of these is an +object literal, and the event is configured to emit an event facade, +that object is mixed into the event facade and the facade is provided +in place of the original object.
+Parameters:
+ +-
+
+
-
+
+
type+ String | Object + + + + +++ + +The type of the event, or an object that contains +a 'type' property.
+
+
+ -
+
+
arguments+ Object* + + + + +++ + +an arbitrary set of parameters to pass to +the handler. If the first of these is an object literal and the event is +configured to emit an event facade, the event facade will replace that +parameter after the properties the object literal contains are copied to +the event facade.
+
+
+
Returns:
+ +generateClientId
+
+
+ ()
+
+
+
+
+ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a clientId string that's unique among all models on the current page +(even models in other YUI instances). Uniqueness across pageviews is +unlikely.
+Returns:
+ +get
+
+
+ -
+
+
-
+
+
name+ +
+
+
Returns the value of the specified attribute.
+ +If the attribute's value is an object, name may use dot notation to +specify the path to a specific property within the object, and the value of +that property will be returned.
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +Attribute name or object property path.
+
+
+
Returns:
+ +undefined if the attribute doesn't
+ exist.
+
+ Example:
+ +// Set the 'foo' attribute to an object.
+myModel.set('foo', {
+ bar: {
+ baz: 'quux'
+ }
+});
+
+// Get the value of 'foo'.
+myModel.get('foo');
+// => {bar: {baz: 'quux'}}
+
+// Get the value of 'foo.bar.baz'.
+myModel.get('foo.bar.baz');
+// => 'quux'
+
+ getAsHTML
+
+
+ -
+
+
-
+
+
name+ +
+
+
Returns an HTML-escaped version of the value of the specified string
+attribute. The value is escaped using Y.Escape.html().
Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +Attribute name or object property path.
+
+
+
Returns:
+ +getAsURL
+
+
+ -
+
+
-
+
+
name+ +
+
+
Returns a URL-encoded version of the value of the specified string
+attribute. The value is encoded using the native encodeURIComponent()
+function.
Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +Attribute name or object property path.
+
+
+
Returns:
+ +getAttrs
+
+
+ -
+
+
-
+
+
attrs+ +
+
+
Gets multiple attribute values.
+Parameters:
+ +-
+
+
-
+
+
attrs+ Array | boolean + + + + +++ + +Optional. An array of attribute names. If omitted, all attribute values are +returned. If set to true, all attributes modified from their initial values are returned.
+
+
+
Returns:
+ +getEvent
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
prefixed+ +
+
+
Returns the custom event of the provided type has been created, a +falsy value otherwise
+Parameters:
+ + +Returns:
+ +getTargets
+
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an array of bubble targets for this object.
+Returns:
+ +init
+
+
+ -
+
+
-
+
+
cfg+ +
+
+
Init lifecycle method, invoked during construction. Sets up attributes +and invokes initializers for the class hierarchy.
+Parameters:
+ +-
+
+
-
+
+
cfg+ Object + + + + +++ + +Object with configuration property name/value pairs
+
+
+
Returns:
+ +isModified
+
+
+ ()
+
+
+
+
+ Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns true if any attribute of this model has been changed since the
+model was last saved.
New models (models for which isNew() returns true) are implicitly
+considered to be "modified" until the first time they're saved.
Returns:
+ + +isNew
+
+
+ ()
+
+
+
+
+ Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns true if this model is "new", meaning it hasn't been saved since it
+was created.
Newness is determined by checking whether the model's id attribute has
+been set. An empty id is assumed to indicate a new model, whereas a
+non-empty id indicates a model that was either loaded or has been saved
+since it was created.
Returns:
+ + +load
+
+
+ -
+
+
-
+
+
[options]+ +
+
+ -
+
+
[callback]+ +
+
+
Loads this model from the server.
+ +This method delegates to the sync() method to perform the actual load
+operation, which is an asynchronous action. Specify a callback function to
+be notified of success or failure.
A successful load operation will fire a load event, while an unsuccessful
+load operation will fire an error event with the src value "load".
If the load operation succeeds and one or more of the loaded attributes
+differ from this model's current attributes, a change event will be fired.
Parameters:
+ +-
+
+
-
+
+
[options]+ Object + optional + + + + +++ + +Options to be passed to
+sync()and toset()+ when setting the loaded attributes. It's up to the custom sync + implementation to determine what options it supports or requires, if any.
+
+ -
+
+
[callback]+ Callback + optional + + + + +++ + +Called when the sync operation finishes.
+-
+
+
-
+
+
err+ Error | Null + + +++ + +If an error occurred, this parameter will + contain the error. If the sync operation succeeded, err will be +
+null.
+
+ -
+
+
response+ Any + + +++ + +The server's response. This value will + be passed to the
+parse()method, which is expected to parse it and + return an attribute hash.
+
+
+
+ -
+
+
modifyAttr
+
+
+ -
+
+
-
+
+
name+ +
+
+ -
+
+
config+ +
+
+
Updates the configuration of an attribute which has already been added.
+ ++The properties which can be modified through this interface are limited +to the following subset of attributes, which can be safely modified +after a value has already been set on the attribute: readOnly, writeOnce, +broadcast and getter. +
+on
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
[context]+ +
+
+ -
+
+
[arg*]+ +
+
+
Subscribe a callback function to a custom event fired by this object or +from an object that bubbles its events to this object.
+ +Callback functions for events published with emitFacade = true will
+receive an EventFacade as the first argument (typically named "e").
+These callbacks can then call e.preventDefault() to disable the
+behavior published to that event's defaultFn. See the EventFacade
+API for all available properties and methods. Subscribers to
+non-emitFacade events will receive the arguments passed to fire()
+after the event name.
To subscribe to multiple events at once, pass an object as the first +argument, where the key:value pairs correspond to the eventName:callback, +or pass an array of event names as the first argument to subscribe to +all listed events with the same callback.
+ +Returning false from a callback is supported as an alternative to
+calling e.preventDefault(); e.stopPropagation();. However, it is
+recommended to use the event methods whenever possible.
Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The name of the event
+
+
+ -
+
+
fn+ Function + + + + +++ + +The callback to execute in response to the event
+
+
+ -
+
+
[context]+ Object + optional + + + + +++ + +Override
+thisobject in callback
+
+ -
+
+
[arg*]+ Any + optional + + + + +++ + +0..n additional arguments to supply to the subscriber
+
+
+
Returns:
+ +once
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
[context]+ +
+
+ -
+
+
[arg*]+ +
+
+
Listen to a custom event hosted by this object one time.
+This is the equivalent to on except the
+listener is immediatelly detached when it is executed.
Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The name of the event
+
+
+ -
+
+
fn+ Function + + + + +++ + +The callback to execute in response to the event
+
+
+ -
+
+
[context]+ Object + optional + + + + +++ + +Override
+thisobject in callback
+
+ -
+
+
[arg*]+ Any + optional + + + + +++ + +0..n additional arguments to supply to the subscriber
+
+
+
Returns:
+ +onceAfter
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
fn+ +
+
+ -
+
+
[context]+ +
+
+ -
+
+
[arg*]+ +
+
+
Listen to a custom event hosted by this object one time.
+This is the equivalent to after except the
+listener is immediatelly detached when it is executed.
Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The name of the event
+
+
+ -
+
+
fn+ Function + + + + +++ + +The callback to execute in response to the event
+
+
+ -
+
+
[context]+ Object + optional + + + + +++ + +Override
+thisobject in callback
+
+ -
+
+
[arg*]+ Any + optional + + + + +++ + +0..n additional arguments to supply to the subscriber
+
+
+
Returns:
+ +parse
+
+
+ -
+
+
-
+
+
response+ +
+
+
Called to parse the response when the model is loaded from the server. +This method receives a server response and is expected to return an +attribute hash.
+ +The default implementation assumes that response is either an attribute
+hash or a JSON string that can be parsed into an attribute hash. If
+response is a JSON string and either Y.JSON or the native JSON object
+are available, it will be parsed automatically. If a parse error occurs, an
+error event will be fired and the model will not be updated.
You may override this method to implement custom parsing logic if necessary.
+Parameters:
+ +-
+
+
-
+
+
response+ Any + + + + +++ + +Server response.
+
+
+
Returns:
+ +parseType
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
[pre=this._yuievt.config.prefix]+ +
+
+
Takes the type parameter passed to 'on' and parses out the +various pieces that could be included in the type. If the +event type is passed without a prefix, it will be expanded +to include the prefix one is supplied or the event target +is configured with a default prefix.
+Parameters:
+ + +Returns:
+ +publish
+
+
+ -
+
+
-
+
+
type+ +
+
+ -
+
+
opts+ +
+
+
Creates a new custom event of the specified type. If a custom event +by that name already exists, it will not be re-created. In either +case the custom event is returned.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +the type, or name of the event
+
+
+ -
+
+
opts+ Object + + + + +++ + +optional config params. Valid properties are:
+ +-
+
- + 'broadcast': whether or not the YUI instance and YUI global are notified when the event is fired (false) + +
- + 'bubbles': whether or not this event bubbles (true) + Events can only bubble if emitFacade is true. + +
- + 'context': the default execution context for the listeners (this) + +
- + 'defaultFn': the default function to execute when this event fires if preventDefault was not called + +
- + 'emitFacade': whether or not this event emits a facade (false) + +
- + 'prefix': the prefix for this targets events, e.g., 'menu' in 'menu:click' + +
- + 'fireOnce': if an event is configured to fire once, new subscribers after + the fire will be notified immediately. + +
- + 'async': fireOnce event listeners will fire synchronously if the event has already + fired unless async is true. + +
- + 'preventable': whether or not preventDefault() has an effect (true) + +
- + 'preventedFn': a function that is executed when preventDefault is called + +
- + 'queuable': whether or not this event can be queued during bubbling (false) + +
- + 'silent': if silent is true, debug messages are not provided for this event. + +
- + 'stoppedFn': a function that is executed when stopPropagation is called + + +
- + 'monitored': specifies whether or not this event should send notifications about + when the event has been attached, detached, or published. + +
- + 'type': the event type (valid option if not provided as the first parameter to publish) + +
+
+
Returns:
+ +removeAttr
+
+
+ -
+
+
-
+
+
name+ +
+
+
Removes an attribute from the host object
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +The name of the attribute to be removed.
+
+
+
removeTarget
+
+
+ -
+
+
-
+
+
o+ +
+
+
Removes a bubble target
+Parameters:
+ +-
+
+
-
+
+
o+ EventTarget + + + + +++ + +the target to remove
+
+
+
reset
+
+
+ -
+
+
-
+
+
name+ +
+
+
Resets the attribute (or all attributes) to its initial value, as long as +the attribute is not readOnly, or writeOnce.
+Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +Optional. The name of the attribute to reset. If omitted, all attributes are reset.
+
+
+
Returns:
+ +save
+
+
+ -
+
+
-
+
+
[options]+ +
+
+ -
+
+
[callback]+ +
+
+
Saves this model to the server.
+ +This method delegates to the sync() method to perform the actual save
+operation, which is an asynchronous action. Specify a callback function to
+be notified of success or failure.
A successful save operation will fire a save event, while an unsuccessful
+save operation will fire an error event with the src value "save".
If the save operation succeeds and one or more of the attributes returned in
+the server's response differ from this model's current attributes, a
+change event will be fired.
Parameters:
+ +-
+
+
-
+
+
[options]+ Object + optional + + + + +++ + +Options to be passed to
+sync()and toset()+ when setting synced attributes. It's up to the custom sync implementation + to determine what options it supports or requires, if any.
+
+ -
+
+
[callback]+ Function + optional + + + + +++ + +Called when the sync operation finishes.
+-
+
+
-
+
+
err+ Error | Null + + +++ + +If an error occurred or validation + failed, this parameter will contain the error. If the sync operation + succeeded, err will be
+null.
+
+ -
+
+
response+ Any + + +++ + +The server's response. This value will + be passed to the
+parse()method, which is expected to parse it and + return an attribute hash.
+
+
+
+ -
+
+
set
+
+
+ -
+
+
-
+
+
name+ +
+
+ -
+
+
value+ +
+
+ -
+
+
[options]+ +
+
+
Sets the value of a single attribute. If model validation fails, the
+attribute will not be set and an error event will be fired.
Use setAttrs() to set multiple attributes at once.
Parameters:
+ +-
+
+
-
+
+
name+ String + + + + +++ + +Attribute name or object property path.
+
+
+ -
+
+
value+ Any + + + + +++ + +Value to set.
+
+
+ -
+
+
[options]+ Object + optional + + + + +++ + +Data to be mixed into the event facade of the +
+changeevent(s) for these attributes.-
+
+
-
+
+
[silent=false]+ Boolean + optional + + +++ + +If
+true, nochangeevent will + be fired.
+
+
+
+ -
+
+
Example:
+ +model.set('foo', 'bar');
+
+ setAttrs
+
+
+ -
+
+
-
+
+
attributes+ +
+
+ -
+
+
[options]+ +
+
+
Sets the values of multiple attributes at once. If model validation fails,
+the attributes will not be set and an error event will be fired.
Parameters:
+ +-
+
+
-
+
+
attributes+ Object + + + + +++ + +Hash of attribute names and values to set.
+
+
+ -
+
+
[options]+ Object + optional + + + + +++ + +Data to be mixed into the event facade of the +
+changeevent(s) for these attributes.-
+
+
-
+
+
[silent=false]+ Boolean + optional + + +++ + +If
+true, nochangeevent will + be fired.
+
+
+
+ -
+
+
Example:
+ +model.setAttrs({
+ foo: 'bar',
+ baz: 'quux'
+});
+
+ subscribe
+
+
+ ()
+
+
+
+
+
+ deprecated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ subscribe to an event
+sync
+
+
+ -
+
+
-
+
+
action+ +
+
+ -
+
+
[options]+ +
+
+ -
+
+
[callback]+ +
+
+
Override this method to provide a custom persistence implementation for this +model. The default just calls the callback without actually doing anything.
+ +This method is called internally by load(), save(), and destroy(), and
+their implementations rely on the callback being called. This effectively
+means that when a callback is provided, it must be called at some point for
+the class to operate correctly.
Parameters:
+ +-
+
+
-
+
+
action+ String + + + + +++ + +Sync action to perform. May be one of the following:
+ +-
+
create: Store a newly-created model for the first time.
+delete: Delete an existing model.
+read: Load an existing model.
+update: Update an existing model.
+
+
+ -
+
+
[options]+ Object + optional + + + + +++ + +Sync options. It's up to the custom sync + implementation to determine what options it supports or requires, if any.
+
+
+ -
+
+
[callback]+ Function + optional + + + + +++ + +Called when the sync operation finishes.
+-
+
+
-
+
+
err+ Error | Null + + +++ + +If an error occurred, this parameter will + contain the error. If the sync operation succeeded, err will be + falsy.
+
+
+ -
+
+
[response]+ Any + optional + + +++ + +The server's response.
+
+
+
+
+ -
+
+
toJSON
+
+
+ ()
+
+
+
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a copy of this model's attributes that can be passed to
+Y.JSON.stringify() or used for other nefarious purposes.
The clientId attribute is not included in the returned object.
If you've specified a custom attribute name in the idAttribute property,
+the default id attribute will not be included in the returned object.
Note: The ECMAScript 5 specification states that objects may implement a
+toJSON method to provide an alternate object representation to serialize
+when passed to JSON.stringify(obj). This allows class instances to be
+serialized as if they were plain objects. This is why Model's toJSON
+returns an object, not a JSON string.
See http://es5.github.com/#x15.12.3 for details.
+Returns:
+ +toString
+
+
+ ()
+
+
+
+
+ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default toString implementation. Provides the constructor NAME +and the instance guid, if set.
+Returns:
+ +undo
+
+
+ -
+
+
-
+
+
[attrNames]+ +
+
+ -
+
+
[options]+ +
+
+
Reverts the last change to the model.
+ +If an attrNames array is provided, then only the named attributes will be +reverted (and only if they were modified in the previous change). If no +attrNames array is provided, then all changed attributes will be reverted +to their previous values.
+ +Note that only one level of undo is available: from the current state to the
+previous state. If undo() is called when no previous state is available,
+it will simply do nothing.
Parameters:
+ +-
+
+
-
+
+
[attrNames]+ Array + optional + + + + +++ + +Array of specific attribute names to revert. If + not specified, all attributes modified in the last change will be + reverted.
+
+
+ -
+
+
[options]+ Object + optional + + + + +++ + +Data to be mixed into the event facade of the + change event(s) for these attributes.
+-
+
+
-
+
+
[silent=false]+ Boolean + optional + + +++ + +If
+true, nochangeevent will + be fired.
+
+
+
+ -
+
+
unsubscribe
+
+
+ ()
+
+
+
+
+
+ deprecated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ detach a listener
+unsubscribeAll
+
+
+ -
+
+
-
+
+
type+ +
+
+
Removes all listeners from the specified event. If the event type +is not specified, all listeners from all hosted custom events will +be removed.
+Parameters:
+ +-
+
+
-
+
+
type+ String + + + + +++ + +The type, or name of the event
+
+
+
validate
+
+
+ -
+
+
-
+
+
attrs+ +
+
+ -
+
+
callback+ +
+
+
Override this method to provide custom validation logic for this model.
+ +While attribute-specific validators can be used to validate individual
+attributes, this method gives you a hook to validate a hash of all
+attributes before the model is saved. This method is called automatically
+before save() takes any action. If validation fails, the save() call
+will be aborted.
In your validation method, call the provided callback function with no
+arguments to indicate success. To indicate failure, pass a single argument,
+which may contain an error message, an array of error messages, or any other
+value. This value will be passed along to the error event.
Parameters:
+ +-
+
+
-
+
+
attrs+ Object + + + + +++ + +Attribute hash containing all model attributes to + be validated.
+
+
+ -
+
+
callback+ Function + + + + +++ + +Validation callback. Call this function when your + validation logic finishes. To trigger a validation failure, pass any + value as the first argument to the callback (ideally a meaningful + validation error of some kind).
+-
+
+
-
+
+
[err]+ Any + optional + + +++ + +Validation error. Don't provide this + argument if validation succeeds. If validation fails, set this to an + error message or some other meaningful value. It will be passed + along to the resulting
+errorevent.
+
+
+
+ -
+
+
Example:
+ +model.validate = function (attrs, callback) {
+ if (attrs.pie !== true) {
+ // No pie?! Invalid!
+ callback('Must provide pie.');
+ return;
+ }
+
+ // Success!
+ callback();
+};
+
+ Properties
+ + +_allowAdHocAttrs
+ Boolean
+
+
+
+
+ protected
+
+
+
+
+
+
+
+
+ This tells Y.Base that it should create ad-hoc attributes for config
+properties passed to Model's constructor. This makes it possible to
+instantiate a model and set a bunch of attributes without having to subclass
+Y.Model and declare all those attributes first.
Default: true
+ + + + + +_isYUIModel
+ Boolean
+
+
+
+
+ protected
+
+
+
+
+
+
+
+
+ Total hack to allow us to identify Model instances without using
+instanceof, which won't work when the instance was created in another
+window or YUI sandbox.
Default: true
+ + + + + +changed
+ Object
+
+
+
+
+
+
+
+
+
+
+
+ Hash of attributes that have changed since the last time this model was +saved.
+Default: {}
+ + + + + +idAttribute
+ String
+
+
+
+
+
+
+
+
+
+
+
+ Name of the attribute to use as the unique id (or primary key) for this +model.
+ +The default is id, but if your persistence layer uses a different name for
+the primary key (such as _id or uid), you can specify that here.
The built-in id attribute will always be an alias for whatever attribute
+name you specify here, so getting and setting id will always behave the
+same as getting and setting your custom id attribute.
Default: `'id'`
+ + + + + +lastChange
+ Object
+
+
+
+
+
+
+
+
+
+
+
+ Hash of attributes that were changed in the last change event. Each item
+in this hash is an object with the following properties:
-
+
newVal: The new value of the attribute after it changed.
+prevVal: The old value of the attribute before it changed.
+src: The source of the change, ornullif no source was specified.
+
Default: {}
+ + + + + +lists
+ ModelList[]
+
+
+
+
+
+
+
+
+
+
+
+ Array of ModelList instances that contain this model.
When a model is in one or more lists, the model's events will bubble up to +those lists. You can subscribe to a model event on a list to be notified +when any model in the list fires that event.
+ +This property is updated automatically when this model is added to or
+removed from a ModelList instance. You shouldn't alter it manually. When
+working with models in a list, you should always add and remove models using
+the list's add() and remove() methods.
Default: `[]`
+ + + +Example:
+ +Subscribing to model events on a list:
+ +// Assuming list is an existing Y.ModelList instance.
+list.on('*:change', function (e) {
+ // This function will be called whenever any model in the list
+ // fires a change event.
+ //
+ // e.target will refer to the model instance that fired the
+ // event.
+});
+
+ name
+ String
+
+
+ deprecated
+
+
+
+
+
+
+
+
+
+
+ The string used to identify the class of this object.
+Attributes
+ + +clientId
+ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+ A client-only identifier for this model.
+ +Like the id attribute, clientId may be used to retrieve model
+instances from lists. Unlike the id attribute, clientId is
+automatically generated, and is only intended to be used on the client
+during the current pageview.
Fires event clientIdChange
+
+
+ Fires when the value for the configuration attribute clientId is
+ changed. You can listen for the event using the on method if you
+ wish to be notified before the attribute's value has changed, or
+ using the after method if you wish to be notified after the
+ attribute's value has changed.
+
Parameters:
+ +-
+
-
+
e+ EventFacade + ++ An Event Facade object with the following + attribute-specific properties added: ++ +-
+
-
+
prevVal+ Any +The value of the attribute, prior to it being set.+
+ -
+
newVal+ Any +The value the attribute is to be set to.+
+ -
+
attrName+ String +The name of the attribute being set.+
+ -
+
subAttrName+ String +If setting a property within the attribute's value, the name of the sub-attribute property being set.+
+
+ -
+
destroyed
+ Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+ Flag indicating whether or not this object +has been through the destroy lifecycle phase.
+Default: false
+ + + +Fires event destroyedChange
+
+
+ Fires when the value for the configuration attribute destroyed is
+ changed. You can listen for the event using the on method if you
+ wish to be notified before the attribute's value has changed, or
+ using the after method if you wish to be notified after the
+ attribute's value has changed.
+
Parameters:
+ +-
+
-
+
e+ EventFacade + ++ An Event Facade object with the following + attribute-specific properties added: ++ +-
+
-
+
prevVal+ Any +The value of the attribute, prior to it being set.+
+ -
+
newVal+ Any +The value the attribute is to be set to.+
+ -
+
attrName+ String +The name of the attribute being set.+
+ -
+
subAttrName+ String +If setting a property within the attribute's value, the name of the sub-attribute property being set.+
+
+ -
+
id
+ String | Number | Null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A unique identifier for this model. Among other things, this id may be +used to retrieve model instances from lists, so it should be unique.
+ +If the id is empty, this model instance is assumed to represent a new +item that hasn't yet been saved.
+ +If you would prefer to use a custom attribute as this model's id instead
+of using the id attribute (for example, maybe you'd rather use _id
+or uid as the primary id), you may set the idAttribute property to
+the name of your custom id attribute. The id attribute will then
+act as an alias for your custom attribute.
Default: `null`
+ + + +Fires event idChange
+
+
+ Fires when the value for the configuration attribute id is
+ changed. You can listen for the event using the on method if you
+ wish to be notified before the attribute's value has changed, or
+ using the after method if you wish to be notified after the
+ attribute's value has changed.
+
Parameters:
+ +-
+
-
+
e+ EventFacade + ++ An Event Facade object with the following + attribute-specific properties added: ++ +-
+
-
+
prevVal+ Any +The value of the attribute, prior to it being set.+
+ -
+
newVal+ Any +The value the attribute is to be set to.+
+ -
+
attrName+ String +The name of the attribute being set.+
+ -
+
subAttrName+ String +If setting a property within the attribute's value, the name of the sub-attribute property being set.+
+
+ -
+
initialized
+ Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+ Flag indicating whether or not this object +has been through the init lifecycle phase.
+Default: false
+ + + +Fires event initializedChange
+
+
+ Fires when the value for the configuration attribute initialized is
+ changed. You can listen for the event using the on method if you
+ wish to be notified before the attribute's value has changed, or
+ using the after method if you wish to be notified after the
+ attribute's value has changed.
+
Parameters:
+ +-
+
-
+
e+ EventFacade + ++ An Event Facade object with the following + attribute-specific properties added: ++ +-
+
-
+
prevVal+ Any +The value of the attribute, prior to it being set.+
+ -
+
newVal+ Any +The value the attribute is to be set to.+
+ -
+
attrName+ String +The name of the attribute being set.+
+ -
+
subAttrName+ String +If setting a property within the attribute's value, the name of the sub-attribute property being set.+
+
+ -
+
Events
+ + +change
+
+
+
+
+
+
+
+
+
+
+
+
+ Fired when one or more attributes on this model are changed.
+Event Payload:
+ +-
+
+
-
+
+
changed+ Object + + + + +++ + +Hash of change information for each attribute that + changed. Each item in the hash has the following properties:
+-
+
+
-
+
+
newVal+ Any + + +++ + +New value of the attribute.
+
+
+ -
+
+
prevVal+ Any + + +++ + +Previous value of the attribute.
+
+
+ -
+
+
src+ String | Null + + +++ + +Source of the change event, if any.
+
+
+
+
+ -
+
+
destroy
+
+
+
+
+
+
+
+
+
+
+
+
+ +Lifecycle event for the destroy phase, +fired prior to destruction. Invoking the preventDefault +method on the event object provided to subscribers will +prevent destruction from proceeding. +
+ ++Subscribers to the "after" moment of this event, will be notified +after destruction is complete (and as a result cannot prevent +destruction). +
+Event Payload:
+ +-
+
+
-
+
+
e+ EventFacade + + + + +++ + +Event object
+
+
+
error
+
+
+
+
+
+
+
+
+
+
+
+
+ Fired when an error occurs, such as when the model doesn't validate or when +a sync layer response can't be parsed.
+Event Payload:
+ +-
+
+
-
+
+
error+ Any + + + + +++ + +Error message, object, or exception generated by the + error. Calling
+toString()on this should result in a meaningful error + message.
+
+ -
+
+
src+ String + + + + +++ + +Source of the error. May be one of the following (or any + custom error source defined by a Model subclass):
+ +-
+
load: An error loading the model from a sync layer. The sync layer's +response (if any) will be provided as theresponseproperty on the +event facade.
+parse: An error parsing a JSON response. The response in question will +be provided as theresponseproperty on the event facade.
+save: An error saving the model to a sync layer. The sync layer's +response (if any) will be provided as theresponseproperty on the +event facade.
+validate: The model failed to validate. The attributes being validated +will be provided as theattributesproperty on the event facade.
+
+
+
init
+
+
+
+
+
+
+
+
+
+
+
+
+ +Lifecycle event for the init phase, fired prior to initialization. +Invoking the preventDefault() method on the event object provided +to subscribers will prevent initialization from occuring. +
+ ++Subscribers to the "after" momemt of this event, will be notified +after initialization of the object is complete (and therefore +cannot prevent initialization). +
+Event Payload:
+ +-
+
+
-
+
+
e+ EventFacade + + + + +++ + +Event object, with a cfg property which +refers to the configuration object passed to the constructor.
+
+
+
load
+
+
+
+
+
+
+
+
+
+
+
+
+ Fired after model attributes are loaded from a sync layer.
+Event Payload:
+ +-
+
+
-
+
+
parsed+ Object + + + + +++ + +The parsed version of the sync layer's response to + the load request.
+
+
+ -
+
+
response+ Any + + + + +++ + +The sync layer's raw, unparsed response to the load + request.
+
+
+
save
+
+
+
+
+
+
+
+
+
+
+
+
+ Fired after model attributes are saved to a sync layer.
+Event Payload:
+ +-
+
+
-
+
+
[parsed]+ Object + optional + + + + +++ + +The parsed version of the sync layer's response to + the save request, if there was a response.
+
+
+ -
+
+
[response]+ Any + optional + + + + +++ + +The sync layer's raw, unparsed response to the save + request, if there was one.
+
+
+
