DoneJS StealJS jQuery ++ FuncUnit DocumentJS
3.0.0
2.3.27

 

  • Github
  • Twitter
  • Chat
  • Forum
  • Guides
  • Core
    • can-component
    • can-compute
    • can-connect
    • can-define
    • can-define/list/list
    • can-define/map/map
      • events
        • __keys
        • propertyName
      • static
        • extend
        • seal
      • prototype
        • forEach
        • get
        • on
        • serialize
        • set
        • *
    • can-route
    • can-route-pushstate
    • can-set
    • can-stache
    • can-stache/helpers/route
    • can-stache-bindings
  • Ecosystem
  • Infrastructure
  • Legacy
  • Bitovi
    • Bitovi.com
    • Blog
    • Consulting
    • Training
    • Open Source
  • Chat
  • Forum
  • Star
  • Follow @canjs
  • CanJS
  • /
  • Core
  • /
  • can-define/map/map
  • /
  • on
  • / On this page
    • on

      function

      Add event handlers to a map.

      • source

      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

      1. eventType {String}:

        The type of event to bind this handler to.

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

      Returns

      {can-define/map/map}:

      This map, for chaining.

      Use

      on binds event handlers to property changes on DefineMaps. 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
      

      CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.0.0.