diff -r 322d0feea350 -r 89ef5ed3c48b src/cm/media/js/lib/yui/yui_3.10.3/api/classes/Model.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui_3.10.3/api/classes/Model.html Tue Jul 16 14:29:46 2013 +0200 @@ -0,0 +1,13523 @@ + + + + + Model - YUI 3 + + + + + + + + +
+
+
+ +

+ +
+
+ API Docs for: 3.10.3 +
+
+
+ +
+ +
+
+
+ Show: + + + + + + + +
+ + +
+
+
+

Model Class

+
+ + + +
+ Extends Base +
+ + + +
+ Defined in: app/js/model.js:10 +
+ + + + + Module: model
+ Parent Module: app + + + + +

Available since 3.4.0

+ +
+ + + +
+

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

+ + + () + + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:10 + +

+ + + + + +

Available since 3.4.0

+ +
+ +
+ +
+ + + + + + +
+ +
+ + +
+ + +
+
+

Item Index

+ + +
+

Methods

+ + +
+ + + +
+

Properties

+ + +
+ + + +
+

Attributes

+ + +
+ + + +
+

Events

+ + +
+ +
+ + +
+

Methods

+ + +
+

_addAttrs

+ + +
+ (
    + +
  • + + cfgs + +
  • + +
  • + + values + +
  • + +
  • + + lazy + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:836 + +

+ + + + + +
+ +
+

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] + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:382 + +

+ + + + + +
+ +
+

Finishes initializing an attribute which has been lazily added.

+
+ + +
+

Parameters:

+ +
    + +
  • + + name + Object + + + + +
    +

    The name of the attribute

    +
    + + +
  • + +
  • + + [lazyCfg] + Object + optional + + + + +
    +

    Optional config hash for the attribute. This is added for performance +along the critical path, where the calling method has already obtained lazy config from state.

    +
    + + +
  • + +
+
+ + + + + +
+ + +
+

_aggregateAttrs

+ + +
+ (
    + +
  • + + allAttrs + +
  • + +
) +
+ + + + + Object + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:575 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + The aggregate set of ATTRS definitions for the instance + +
+
+ + + +
+ + +
+

_attrCfgHash

+ + + () + + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:538 + +

+ + + + + +
+ +
+

Utility method to define the attribute hash used to filter/whitelist property mixes for +this class for iteration performance reasons.

+
+ + + + + + +
+ + +
+

_baseDestroy

+ + + () + + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:309 + +

+ + + + + +
+ +
+

Internal destroy implementation for BaseCore

+
+ + + + + + +
+ + +
+

_baseInit

+ + + () + + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:281 + +

+ + + + + +
+ +
+

Internal initialization implementation for BaseCore

+
+ + + + + + +
+ + +
+

_cloneDefaultValue

+ + +
+ (
    + +
  • + + cfg + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:549 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + + + + protected + + + + + + + + + + +
+ +

Inherited from + + AttributeObservable + + + but overwritten in + + + + app/js/model.js:926 + +

+ + + + + +
+ +
+

Duckpunches the _defAttrChangeFn() provided by Y.Attribute so we can +have a single global notification when a change event occurs.

+
+ + +
+

Parameters:

+ + +
+ + + + + +
+ + +
+

_defDestroyFn

+ + +
+ (
    + +
  • + + e + +
  • + +
) +
+ + + + + + + + protected + + + + + + + + + + +
+ + +

Inherited from + BaseObservable: + + + + base/js/BaseObservable.js:190 + +

+ + + + + +
+ +
+

Default destroy event handler

+
+ + +
+

Parameters:

+ +
    + +
  • + + e + EventFacade + + + + +
    +

    Event object

    +
    + + +
  • + +
+
+ + + + + +
+ + +
+

_defInitFn

+ + +
+ (
    + +
  • + + e + +
  • + +
) +
+ + + + + + + + protected + + + + + + + + + + +
+ + +

Inherited from + BaseObservable: + + + + base/js/BaseObservable.js:178 + +

+ + + + + +
+ +
+

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 + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:721 + +

+ + + + + +
+ +
+

Destroys the class hierarchy for this instance by invoking +the destructor method on the prototype of each class in the hierarchy.

+
+ + + + + + +
+ + +
+

_filterAdHocAttrs

+ + +
+ (
    + +
  • + + allAttrs + +
  • + +
  • + + userVals + +
  • + +
) +
+ + + + + Object + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:427 + +

+ + + + + +
+ +
+ +
+ + +
+

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:

+ +
+ + + Object: + + The set of adhoc attributes passed in, in the form +of an object with attribute name/configuration pairs. + +
+
+ + + +
+ + +
+

_filterAttrCfgs

+ + +
+ (
    + +
  • + + clazz + +
  • + +
  • + + allCfgs + +
  • + +
) +
+ + + + + Object + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:356 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + The set of attributes belonging to the class passed in, in the form +of an object with attribute name/configuration pairs. + +
+
+ + + +
+ + +
+

_fireAttrChange

+ + +
+ (
    + +
  • + + attrName + +
  • + +
  • + + subAttrName + +
  • + +
  • + + currVal + +
  • + +
  • + + newVal + +
  • + +
  • + + opts + +
  • + +
  • + + [cfg] + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeObservable: + + + + attribute/js/AttributeObservable.js:120 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + Any + + + + + + + protected + + + + + + + + chainable + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:543 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Any: + + The value of the attribute. + +
+
+ + + +
+ + +
+

_getAttrCfg

+ + +
+ (
    + +
  • + + name + +
  • + +
) +
+ + + + + Object + + + + + + + protected + + + + + + + + + + +
+ + +

Inherited from + AttributeExtras: + + + + attribute/js/AttributeExtras.js:114 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + The configuration properties for the given attribute, or all attributes. + +
+
+ + + +
+ + +
+

_getAttrCfgs

+ + + () + + + + + Object + + + + + + + protected + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:339 + +

+ + + + + +
+ +
+

Returns an aggregated set of attribute configurations, by traversing +the class hierarchy.

+
+ + + + +
+

Returns:

+ +
+ + + Object: + + The hash of attribute configurations, aggregated across classes in the hierarchy +This value is cached the first time the method, or _getClasses, is invoked. Subsequent invocations return +the cached value. + +
+
+ + + +
+ + +
+

_getAttrInitVal

+ + +
+ (
    + +
  • + + attr + +
  • + +
  • + + cfg + +
  • + +
  • + + initValues + +
  • + +
) +
+ + + + + Any + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:945 + +

+ + + + + +
+ +
+

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:

+ +
    + +
  • + + attr + String + + + + +
    +

    The name of the attribute

    +
    + + +
  • + +
  • + + cfg + Object + + + + +
    +

    The attribute configuration object

    +
    + + +
  • + +
  • + + initValues + Object + + + + +
    +

    The object with simple and complex attribute name/value pairs returned from _normAttrVals

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + Any: + + The initial value of the attribute. + +
+
+ + + +
+ + +
+

_getAttrs

+ + +
+ (
    + +
  • + + attrs + +
  • + +
) +
+ + + + + Object + + + + + + + protected + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:774 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + An object with attribute name/value pairs. + +
+
+ + + +
+ + +
+

_getClasses

+ + + () + + + + + Function[] + + + + + + + protected + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:323 + +

+ + + + + +
+ +
+

Returns the class hierarchy for this object, with BaseCore being the last class in the array.

+
+ + + + +
+

Returns:

+ +
+ + + Function[]: + + An array of classes (constructor functions), making up the class hierarchy for this object. +This value is cached the first time the method, or _getAttrCfgs, is invoked. Subsequent invocations return the +cached value. + +
+
+ + + +
+ + +
+

_getFullType

+ + +
+ (
    + +
  • + + type + +
  • + +
) +
+ + + + + String + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:586 + +

+ + + + + +
+ +
+

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:

+ +
+ + + String: + + The prefixed type, if a prefix is set, otherwise the type passed in + +
+
+ + + +
+ + +
+

_getStateVal

+ + +
+ (
    + +
  • + + name + +
  • + +
  • + + [cfg] + +
  • + +
) +
+ + + + + Any + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:600 + +

+ + + + + +
+ +
+

Gets the stored value for the attribute, from either the +internal state object, or the state proxy if it exits

+
+ + +
+

Parameters:

+ +
    + +
  • + + name + String + + + + +
    +

    The name of the attribute

    +
    + + +
  • + +
  • + + [cfg] + 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:

+ +
+ + + Any: + + The stored value of the attribute + +
+
+ + + +
+ + +
+

_getType

+ + + () + + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:36 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:140 + +

+ + + + + +
+ +
+

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 + + + + + + + + + + +
+ +

Inherited from + + BaseObservable + + + but overwritten in + + + + base/js/BaseCore.js:254 + +

+ + + + + +
+ +
+

Initializes AttributeCore

+
+ + + + + + +
+ + +
+

_initAttrs

+ + +
+ (
    + +
  • + + attrs + +
  • + +
  • + + values + +
  • + +
  • + + lazy + +
  • + +
) +
+ + + + + + + + protected + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:1011 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:219 + +

+ + + + + +
+ +
+

Internal construction logic for BaseCore.

+
+ + +
+

Parameters:

+ +
    + +
  • + + config + Object + + + + +
    +

    The constructor configuration object

    +
    + + +
  • + +
+
+ + + + + +
+ + +
+

_initHierarchy

+ + +
+ (
    + +
  • + + userVals + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:659 + +

+ + + + + +
+ +
+

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 + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:457 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + Boolean + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:369 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Boolean: + + true if it's a lazily added attribute, false otherwise. + +
+
+ + + +
+ + +
+

_monitor

+ + +
+ (
    + +
  • + + what + +
  • + +
  • + + eventType + +
  • + +
  • + + o + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:658 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + Object + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:897 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + An object literal with 2 properties - "simple" and "complex", +containing simple and complex attribute values respectively keyed +by the top level attribute name, or null, if valueHash is falsey. + +
+
+ + + +
+ + +
+

_parse

+ + +
+ (
    + +
  • + + response + +
  • + +
) +
+ + + + + Object + + + + + + + protected + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:867 + +

+ + + + + +

Available since 3.7.0

+ +
+ +
+

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:

+ +
+ + + Object: + + Attribute hash. + +
+
+ + + +
+ + +
+

_parseType

+ + + () + + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:52 + +

+ + + + + +
+ +
+

Returns an array with the detach key (if provided), +and the prefixed event name from _getType +Y.on('detachcategory| menu:click', fn)

+
+ + + + + + +
+ + +
+

_preInitEventCfg

+ + +
+ (
    + +
  • + + config + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + BaseObservable: + + + + base/js/BaseObservable.js:98 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + Object + + + + + deprecated + + + + protected + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:883 + +

+ + + +

Deprecated: Use `AttributeCore.protectAttrs()` or + `Attribute.protectAttrs()` which are the same static utility method.

+ + + +
+ +
+

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:

+ +
+ + + Object: + + A protected version of the attrs argument. + +
+
+ + + +
+ + +
+

_publish

+ + +
+ (
    + +
  • + + fullType + +
  • + +
  • + + etOpts + +
  • + +
  • + + ceOpts + +
  • + +
) +
+ + + + + CustomEvent + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:610 + +

+ + + + + +
+ +
+

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:

+ +
+ + + CustomEvent: + + The published event. If called without etOpts or ceOpts, this will +be the default CustomEvent instance, and can be configured independently. + +
+
+ + + +
+ + +
+

_set

+ + +
+ (
    + +
  • + + name + +
  • + +
  • + + val + +
  • + +
  • + + [opts] + +
  • + +
) +
+ + + + + Object + + + + + + + protected + + + + + + + + chainable + + + + +
+ +

Inherited from + + AttributeObservable + + + but overwritten in + + + + attribute/js/AttributeCore.js:427 + +

+ + + + + +
+ +
+

Allows setting of readOnly/writeOnce attributes. See set for argument details.

+
+ + +
+

Parameters:

+ +
    + +
  • + + name + String + + + + +
    +

    The name of the attribute.

    +
    + + +
  • + +
  • + + val + Any + + + + +
    +

    The value to set the attribute to.

    +
    + + +
  • + +
  • + + [opts] + Object + optional + + + + +
    +

    Optional data providing the circumstances for the change.

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + Object: + + A reference to the host object. + +
+
+ + + +
+ + +
+

_setAttr

+ + +
+ (
    + +
  • + + name + +
  • + +
  • + + value + +
  • + +
  • + + [opts] + +
  • + +
  • + + force + +
  • + +
) +
+ + + + + Object + + + + + + + protected + + + + + + + + chainable + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:443 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + A reference to the host object. + +
+
+ + + +
+ + +
+

_setAttrs

+ + +
+ (
    + +
  • + + attrs + +
  • + +
  • + + [opts] + +
  • + +
) +
+ + + + + Object + + + + + + + protected + + + + + + + + chainable + + + + +
+ +

Inherited from + + AttributeObservable + + + but overwritten in + + + + attribute/js/AttributeCore.js:742 + +

+ + + + + +
+ +
+

Implementation behind the public setAttrs method, to set multiple attribute values.

+
+ + +
+

Parameters:

+ +
    + +
  • + + attrs + Object + + + + +
    +

    An object with attributes name/value pairs.

    +
    + + +
  • + +
  • + + [opts] + Object + optional + + + + +
    +

    Optional data providing the circumstances for the change

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + Object: + + A reference to the host object. + +
+
+ + + +
+ + +
+

_setAttrVal

+ + +
+ (
    + +
  • + + attrName + +
  • + +
  • + + subAttrName + +
  • + +
  • + + prevVal + +
  • + +
  • + + newVal + +
  • + +
  • + + [opts] + +
  • + +
  • + + [attrCfg] + +
  • + +
) +
+ + + + + Booolean + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:640 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Booolean: + + true if the new attribute value was stored, false if not. + +
+
+ + + +
+ + +
+

_setStateVal

+ + +
+ (
    + +
  • + + name + +
  • + +
  • + + value + +
  • + +
) +
+ + + + + + + + private + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:622 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + + + + protected + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:885 + +

+ + + + + +
+ +
+

Calls the public, overridable validate() method and fires an error event +if validation fails.

+
+ + +
+

Parameters:

+ +
    + +
  • + + attributes + Object + + + + +
    +

    Attribute hash.

    +
    + + +
  • + +
  • + + callback + Function + + + + +
    +

    Validation callback.

    +
    + + +
      + +
    • + + [err] + Any + optional + + +
      +

      Value on failure, non-value on success.

      +
      + + +
    • + +
    + +
  • + +
+
+ + + + + +
+ + +
+

addAttr

+ + +
+ (
    + +
  • + + name + +
  • + +
  • + + config + +
  • + +
  • + + lazy + +
  • + +
) +
+ + + + + Object + + + + + + + protected + + + + + + + + chainable + + + + +
+ +

Inherited from + + AttributeCore + + + but overwritten in + + + + app/js/model.js:812 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + A reference to the host object. + +
+
+ + + +
+ + +
+

addAttrs

+ + +
+ (
    + +
  • + + cfgs + +
  • + +
  • + + values + +
  • + +
  • + + lazy + +
  • + +
) +
+ + + + + Object + + + + + + + + + + + + + chainable + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:805 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + A reference to the host object. + +
+
+ + + +
+ + +
+

addTarget

+ + +
+ (
    + +
  • + + o + +
  • + +
) +
+ + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-facade.js:455 + +

+ + + + + +
+ +
+

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*] + +
  • + +
) +
+ + + + + EventHandle + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:833 + +

+ + + + + +
+ +
+

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 this object in callback

    +
    + + +
  • + +
  • + + [arg*] + Any + optional + + + + +
    +

    0..n additional arguments to supply to the subscriber

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + EventHandle: + + A subscription handle capable of detaching the + subscription + +
+
+ + + +
+ + +
+

attrAdded

+ + +
+ (
    + +
  • + + name + +
  • + +
) +
+ + + + + Boolean + + + + + + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:341 + +

+ + + + + +
+ +
+

Checks if the given attribute has been added to the host

+
+ + +
+

Parameters:

+ +
    + +
  • + + name + String + + + + +
    +

    The name of the attribute to check.

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + Boolean: + + true if an attribute with the given name has been added, false if it hasn't. + This method will return true for lazily added attributes. + +
+
+ + + +
+ + +
+

before

+ + + () + + + + + + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:870 + +

+ + + + + +
+ +
+

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:

+ +
+ + + detach handle + +
+
+ + + +
+ + +
+

bubble

+ + +
+ (
    + +
  • + + evt + +
  • + +
) +
+ + + + + Boolean + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-facade.js:507 + +

+ + + + + +
+ +
+

Propagate an event. Requires the event-custom-complex module.

+
+ + +
+

Parameters:

+ +
    + +
  • + + evt + CustomEvent + + + + +
    +

    the custom event to propagate

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + Boolean: + + the aggregated return value from Event.Custom.fire + +
+
+ + + +
+ + +
+

destroy

+ + +
+ (
    + +
  • + + [options] + +
  • + +
  • + + [callback] + +
  • + +
) +
+ + + + + + + + + + + + + + chainable + + + + +
+ +

Inherited from + + BaseObservable + + + but overwritten in + + + + app/js/model.js:205 + +

+ + + + + +
+ +
+

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.remove is true).

    +
    + + +
      + +
    • + + err + Error | Null + + +
      +

      If an error occurred, this parameter will + contain the error. Otherwise err will be null.

      +
      + + +
    • + +
    + +
  • + +
+
+ + + + + +
+ + +
+

detach

+ + +
+ (
    + +
  • + + type + +
  • + +
  • + + fn + +
  • + +
  • + + context + +
  • + +
) +
+ + + + + EventTarget + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:346 + +

+ + + + + +
+ +
+

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:

+ +
+ + + EventTarget: + + the host + +
+
+ + + +
+ + +
+

detachAll

+ + +
+ (
    + +
  • + + type + +
  • + +
) +
+ + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:469 + +

+ + + + + +
+ +
+

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 + +
  • + +
) +
+ + + + + EventTarget + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:695 + +

+ + + + + +
+ +
+

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:

+ +
+ + + EventTarget: + + the event host + +
+
+ + + +
+ + +
+

generateClientId

+ + + () + + + + + String + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:260 + +

+ + + + + +
+ +
+

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:

+ +
+ + + String: + + Unique clientId. + +
+
+ + + +
+ + +
+

get

+ + +
+ (
    + +
  • + + name + +
  • + +
) +
+ + + + + Any + + + + + + + + + + + + + + + +
+ +

Inherited from + + AttributeCore + + + but overwritten in + + + + app/js/model.js:273 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Any: + + Attribute value, or 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 + +
  • + +
) +
+ + + + + String + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:304 + +

+ + + + + +
+ +
+

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:

+ +
+ + + String: + + HTML-escaped attribute value. + +
+
+ + + +
+ + +
+

getAsURL

+ + +
+ (
    + +
  • + + name + +
  • + +
) +
+ + + + + String + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:317 + +

+ + + + + +
+ +
+

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:

+ +
+ + + String: + + URL-encoded attribute value. + +
+
+ + + +
+ + +
+

getAttrs

+ + +
+ (
    + +
  • + + attrs + +
  • + +
) +
+ + + + + Object + + + + + + + + + + + + + + + +
+ + +

Inherited from + AttributeCore: + + + + attribute/js/AttributeCore.js:762 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + An object with attribute name/value pairs. + +
+
+ + + +
+ + +
+

getEvent

+ + +
+ (
    + +
  • + + type + +
  • + +
  • + + prefixed + +
  • + +
) +
+ + + + + CustomEvent + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:814 + +

+ + + + + +
+ +
+

Returns the custom event of the provided type has been created, a +falsy value otherwise

+
+ + +
+

Parameters:

+ +
    + +
  • + + type + String + + + + +
    +

    the type, or name of the event

    +
    + + +
  • + +
  • + + prefixed + String + + + + +
    +

    if true, the type is prefixed already

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + CustomEvent: + + the custom event or null + +
+
+ + + +
+ + +
+

getTargets

+ + + () + + + + + + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-facade.js:479 + +

+ + + + + +
+ +
+

Returns an array of bubble targets for this object.

+
+ + + + +
+

Returns:

+ +
+ + + EventTarget[] + +
+
+ + + +
+ + +
+

init

+ + +
+ (
    + +
  • + + cfg + +
  • + +
) +
+ + + + + BaseCore + + + + + + + + + + + + + chainable + + + + +
+ +

Inherited from + + BaseObservable + + + but overwritten in + + + + base/js/BaseCore.js:264 + +

+ + + + + +
+ +
+

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:

+ +
+ + + BaseCore: + + A reference to this object + +
+
+ + + +
+ + +
+

isModified

+ + + () + + + + + Boolean + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:331 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Boolean: + + true if this model has changed since it was last saved, + false otherwise. + +
+
+ + + +
+ + +
+

isNew

+ + + () + + + + + Boolean + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:346 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Boolean: + + true if this model is new, false otherwise. + +
+
+ + + +
+ + +
+

load

+ + +
+ (
    + +
  • + + [options] + +
  • + +
  • + + [callback] + +
  • + +
) +
+ + + + + + + + + + + + + + chainable + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:362 + +

+ + + + + +
+ +
+

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 to set() + 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 + +
  • + +
) +
+ + + + + + + + + + + + + + + + +
+ + +

Inherited from + AttributeExtras: + + + + attribute/js/AttributeExtras.js:40 + +

+ + + + + +
+ +
+

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. +

+
+ + +
+

Parameters:

+ +
    + +
  • + + name + String + + + + +
    +

    The name of the attribute whose configuration is to be updated.

    +
    + + +
  • + +
  • + + config + Object + + + + +
    +

    An object with configuration property/value pairs, specifying the configuration properties to modify.

    +
    + + +
  • + +
+
+ + + + + +
+ + +
+

on

+ + +
+ (
    + +
  • + + type + +
  • + +
  • + + fn + +
  • + +
  • + + [context] + +
  • + +
  • + + [arg*] + +
  • + +
) +
+ + + + + EventHandle + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:188 + +

+ + + + + +
+ +
+

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 this object in callback

    +
    + + +
  • + +
  • + + [arg*] + Any + optional + + + + +
    +

    0..n additional arguments to supply to the subscriber

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + EventHandle: + + A subscription handle capable of detaching that + subscription + +
+
+ + + +
+ + +
+

once

+ + +
+ (
    + +
  • + + type + +
  • + +
  • + + fn + +
  • + +
  • + + [context] + +
  • + +
  • + + [arg*] + +
  • + +
) +
+ + + + + EventHandle + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:124 + +

+ + + + + +
+ +
+

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 this object in callback

    +
    + + +
  • + +
  • + + [arg*] + Any + optional + + + + +
    +

    0..n additional arguments to supply to the subscriber

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + EventHandle: + + A subscription handle capable of detaching the + subscription + +
+
+ + + +
+ + +
+

onceAfter

+ + +
+ (
    + +
  • + + type + +
  • + +
  • + + fn + +
  • + +
  • + + [context] + +
  • + +
  • + + [arg*] + +
  • + +
) +
+ + + + + EventHandle + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:146 + +

+ + + + + +
+ +
+

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 this object in callback

    +
    + + +
  • + +
  • + + [arg*] + Any + optional + + + + +
    +

    0..n additional arguments to supply to the subscriber

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + EventHandle: + + A subscription handle capable of detaching that + subscription + +
+
+ + + +
+ + +
+

parse

+ + +
+ (
    + +
  • + + response + +
  • + +
) +
+ + + + + Object + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:434 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + Attribute hash. + +
+
+ + + +
+ + +
+

parseType

+ + +
+ (
    + +
  • + + type + +
  • + +
  • + + [pre=this._yuievt.config.prefix] + +
  • + +
) +
+ + + + + Array + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:168 + +

+ + + + + +

Available since 3.3.0

+ +
+ +
+

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:

+ +
    + +
  • + + type + String + + + + +
    +

    the type

    +
    + + +
  • + +
  • + + [pre=this._yuievt.config.prefix] + String + optional + + + + +
    +

    the prefix

    +
    + + +
  • + +
+
+ + + +
+

Returns:

+ +
+ + + Array: + + an array containing: + * the detach category, if supplied, + * the prefixed event type, + * whether or not this is an after listener, + * the supplied event type + +
+
+ + + +
+ + +
+

publish

+ + +
+ (
    + +
  • + + type + +
  • + +
  • + + opts + +
  • + +
) +
+ + + + + CustomEvent + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:493 + +

+ + + + + +
+ +
+

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:

+ +
+ + + CustomEvent: + + the custom event + +
+
+ + + +
+ + +
+

removeAttr

+ + +
+ (
    + +
  • + + name + +
  • + +
) +
+ + + + + + + + + + + + + + + + +
+ + +

Inherited from + AttributeExtras: + + + + attribute/js/AttributeExtras.js:79 + +

+ + + + + +
+ +
+

Removes an attribute from the host object

+
+ + +
+

Parameters:

+ +
    + +
  • + + name + String + + + + +
    +

    The name of the attribute to be removed.

    +
    + + +
  • + +
+
+ + + + + +
+ + +
+

removeTarget

+ + +
+ (
    + +
  • + + o + +
  • + +
) +
+ + + + + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-facade.js:489 + +

+ + + + + +
+ +
+

Removes a bubble target

+
+ + +
+

Parameters:

+ +
    + +
  • + + o + EventTarget + + + + +
    +

    the target to remove

    +
    + + +
  • + +
+
+ + + + + +
+ + +
+

reset

+ + +
+ (
    + +
  • + + name + +
  • + +
) +
+ + + + + Object + + + + + + + + + + + + + chainable + + + + +
+ + +

Inherited from + AttributeExtras: + + + + attribute/js/AttributeExtras.js:89 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + A reference to the host object. + +
+
+ + + +
+ + +
+

save

+ + +
+ (
    + +
  • + + [options] + +
  • + +
  • + + [callback] + +
  • + +
) +
+ + + + + + + + + + + + + + chainable + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:469 + +

+ + + + + +
+ +
+

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 to set() + 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] + +
  • + +
) +
+ + + + + + + + + + + + + + chainable + + + + +
+ +

Inherited from + + AttributeObservable + + + but overwritten in + + + + app/js/model.js:550 + +

+ + + + + +
+ +
+

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 + change event(s) for these attributes.

    +
    + + +
      + +
    • + + [silent=false] + Boolean + optional + + +
      +

      If true, no change event will + be fired.

      +
      + + +
    • + +
    + +
  • + +
+
+ + + + + +
+

Example:

+ +
+
model.set('foo', 'bar');
+
+
+
+ +
+ + +
+

setAttrs

+ + +
+ (
    + +
  • + + attributes + +
  • + +
  • + + [options] + +
  • + +
) +
+ + + + + + + + + + + + + + chainable + + + + +
+ +

Inherited from + + AttributeObservable + + + but overwritten in + + + + app/js/model.js:575 + +

+ + + + + +
+ +
+

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 + change event(s) for these attributes.

    +
    + + +
      + +
    • + + [silent=false] + Boolean + optional + + +
      +

      If true, no change event will + be fired.

      +
      + + +
    • + +
    + +
  • + +
+
+ + + + + +
+

Example:

+ +
+
model.setAttrs({
+    foo: 'bar',
+    baz: 'quux'
+});
+
+
+
+ +
+ + +
+

subscribe

+ + + () + + + + + + deprecated + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:336 + +

+ + + +

Deprecated: use on

+ + + +
+ +
+

subscribe to an event

+
+ + + + + + +
+ + +
+

sync

+ + +
+ (
    + +
  • + + action + +
  • + +
  • + + [options] + +
  • + +
  • + + [callback] + +
  • + +
) +
+ + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:656 + +

+ + + + + +
+ +
+

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 + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:689 + +

+ + + + + +
+ +
+

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:

+ +
+ + + Object: + + Copy of this model's attributes. + +
+
+ + + +
+ + +
+

toString

+ + + () + + + + + String + + + + + + + + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:754 + +

+ + + + + +
+ +
+

Default toString implementation. Provides the constructor NAME +and the instance guid, if set.

+
+ + + + +
+

Returns:

+ +
+ + + String: + + String representation for this object + +
+
+ + + +
+ + +
+

undo

+ + +
+ (
    + +
  • + + [attrNames] + +
  • + +
  • + + [options] + +
  • + +
) +
+ + + + + + + + + + + + + + chainable + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:723 + +

+ + + + + +
+ +
+

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, no change event will + be fired.

      +
      + + +
    • + +
    + +
  • + +
+
+ + + + + +
+ + +
+

unsubscribe

+ + + () + + + + + + deprecated + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:459 + +

+ + + +

Deprecated: use detach

+ + + +
+ +
+

detach a listener

+
+ + + + + + +
+ + +
+

unsubscribeAll

+ + +
+ (
    + +
  • + + type + +
  • + +
) +
+ + + + + + deprecated + + + + + + + + + + + + +
+ + +

Inherited from + EventTarget: + + + + event-custom/js/event-target.js:480 + +

+ + + +

Deprecated: use detachAll

+ + + +
+ +
+

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 + +
  • + +
) +
+ + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:766 + +

+ + + + + +
+ +
+

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 error event.

      +
      + + +
    • + +
    + +
  • + +
+
+ + + + + +
+

Example:

+ +
+
model.validate = function (attrs, callback) {
+    if (attrs.pie !== true) {
+        // No pie?! Invalid!
+        callback('Must provide pie.');
+        return;
+    }
+
+    // Success!
+    callback();
+};
+
+
+
+ +
+ + +
+ + + +
+

Properties

+ + +
+

_allowAdHocAttrs

+ Boolean + + + + + protected + + + + + + +
+ +

Inherited from + + BaseCore + + + but overwritten in + + + + app/js/model.js:169 + +

+ + + + +

Available since 3.5.0

+ +
+ +
+

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 + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:183 + +

+ + + + +

Available since 3.5.0

+ +
+ +
+

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 + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:100 + +

+ + + + +
+ +
+

Hash of attributes that have changed since the last time this model was +saved.

+
+ + +

Default: {}

+ + + + + +
+ + +
+

idAttribute

+ String + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:109 + +

+ + + + +
+ +
+

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 + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:126 + +

+ + + + +
+ +
+

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, or null if no source was specified.
  • +
+
+ + +

Default: {}

+ + + + + +
+ + +
+

lists

+ ModelList[] + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:139 + +

+ + + + +
+ +
+

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 + + + + + + + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:242 + +

+ + +

Deprecated: Use this.constructor.NAME

+ + + +
+ +
+

The string used to identify the class of this object.

+
+ + + + + + +
+ + +
+ + + +
+

Attributes

+ + +
+ +

clientId

+ String + + + + + + + + + + + + + + + readonly + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:953 + +

+ + + + +
+ +
+

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 + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:157 + +

+ + + + +
+ +
+

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 + + + + + + + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:970 + +

+ + + + +
+ +
+

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 + + +
+ + +

Inherited from + BaseCore: + + + + base/js/BaseCore.js:143 + +

+ + + + +
+ +
+

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

+ + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:30 + +

+ + + + +
+ +
+

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

+ + + + + + + + + + +
+ + +

Inherited from + BaseObservable: + + + + base/js/BaseObservable.js:151 + +

+ + + + +
+ +
+

+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

+ + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:42 + +

+ + + + +
+ +
+

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 the response property on the +event facade.

    • +
    • parse: An error parsing a JSON response. The response in question will +be provided as the response property 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 the response property on the +event facade.

    • +
    • validate: The model failed to validate. The attributes being validated +will be provided as the attributes property on the event facade.

    • +
    +
    + + +
  • + +
+
+ + + + +
+ + +
+

init

+ + + + + + + + + + +
+ + +

Inherited from + BaseObservable: + + + + base/js/BaseObservable.js:62 + +

+ + + + +
+ +
+

+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

+ + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:69 + +

+ + + + +

Available since 3.5.0

+ +
+ +
+

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

+ + + + + + + + + + +
+ + + +

+ + Defined in + + + + + app/js/model.js:81 + +

+ + + + +

Available since 3.5.0

+ +
+ +
+

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.

    +
    + + +
  • + +
+
+ + + + +
+ + +
+ +
+
+ +
+
+
+
+
+
+ + + + + + + + + +