on
Add event handlers to a map.
map.on(eventType, handler)
Listens to eventType
on map
and calls handler
when the event is dispatched. This is simply
a reference to can-event.on as all of can-event methods are available on DefineMap
.
var map = new DefineMap({name: "Justin"})
map.on("name", function(ev, newVal, oldVal){
newVal //-> "Brian"
oldVal //-> "Justin"
});
map.name = "Brian";
Parameters
- eventType
{String}
:The type of event to bind this handler to.
- handler
{function(event, args...)}
:The handler to be called when this type of event fires The signature of the handler depends on the type of event being bound. See below for details.
Use
on
binds event handlers to property changes on DefineMap
s. When you change
a property value, a property name event is fired, allowing other parts
of your application to map the changes to the object.
This event is useful for noticing changes to a specific property.
var o = new DefineMap({name: "Justin"});
o.on('name', function(ev, newVal, oldVal) {
console.log('The value of a changed.');
});
The parameters of the event handler for the property name event are:
- ev The event object.
- newVal The value of the property after the change. `
- oldVal The value of the property before the change.
Here is a concrete tour through the property name event handler's arguments:
var o = new DefineMap({a: undefined, b: undefined});
o.on('a', function(ev, newVal, oldVal) {
console.log(newVal + ', ' + oldVal);
});
o.a = 'Alexis'; // Alexis, undefined
o.set('a', 'Adam'); // Adam, Alexis
o.set({
'a': 'Alice', // Alice, Adam
'b': 'Bob'
});
o.a = undefined; // undefined, Alice