can.Map
can/map 2.0
inherits: can.Construct
Create observable objects.
new can.Map([props])
Creates a new instance of can.Map.
Parameters
-
props
{Object}
OptionalProperties and values to seed the Observe with.
Returns
{can.Map}
An instance of can.Map
with the properties from props.
can.Map.extend([name,] [staticProperties,] instanceProperties)
Creates a new extended constructor function.
Use
Watch this video to see an example of creating an ATM machine using can.Map:
can.Map
provides a way for you to listen for and keep track of changes to objects. When you use the getters and setters provided bycan.Map
, events are fired that you can react to.can.Map
also has support for working with deep properties. Observable arrays are also available withcan.List
, which is based oncan.Map
.Working with Observes
To create an Observe, use
new can.Map([props])
. This will return a copy ofprops
that emits events when its properties are changed withattr
.You can read the values of properties on Observes directly, but you should never set them directly. You can also read property values using
attr
.Find out more about manipulating properties of a map under attr and removeAttr.
Listening to changes
The real power of maps comes from being able to react to properties being added, set, and removed. Maps emit events when properties are changed that you can bind to.
can.Map
has two types of events that fire due to changes on a map:For more detail on how to use these events, see bind and unbind. There is also a plugin called delegate that makes binding to specific types of events easier:
Object.prototype.watch
Due to a method available on the base Object prototype called "watch", refrain from using properties with the same name on Gecko based browsers as there will be a collision. Source