DoneJS StealJS jQuery++ FuncUnit DocumentJS
3.14.1
5.0.0 4.3.0 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-compute
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-stream
      • can-define-stream-kefir
      • can-event
      • can-event/async/async
      • can-event/batch/batch
      • can-event/lifecycle/lifecycle
      • can-kefir
      • can-list
      • can-map
      • can-map-backup
      • can-map-define
      • can-observation
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
    • Data Modeling
      • can-connect
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-ejs
      • can-element
      • can-react-component
      • can-stache
      • can-stache/helpers/route
      • can-stache-bindings
      • can-stache-converters
      • can-view-autorender
      • can-view-callbacks
      • can-view-href
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • react-view-model
      • react-view-model/component
      • steal-stache
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-globals
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-control
      • can-dom-events
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-jquery
    • Data Validation
      • can-define-validate-validatejs
      • can-validate
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-namespace
      • can-reflect
        • Type reflections
          • isBuiltIn
          • isConstructorLike
          • isFunctionLike
          • isIteratorLike
          • isListLike
          • isMapLike
          • isMoreListLikeThanMapLike
          • isObservableLike
          • isPlainObject
          • isPrimitive
          • isPromise
          • isSymbolLike
          • isValueLike
        • Get/Set reflections
          • deleteKeyValue
          • getKeyValue
          • getValue
          • setKeyValue
          • setValue
        • Call reflections
          • apply
          • call
          • new
        • Shape reflections
          • assign
          • assignDeep
          • assignSymbols
          • cloneKeySort
          • convert
          • defineInstanceKey
          • each
          • eachIndex
          • eachKey
          • getIdentity
          • getName
          • getOwnEnumerableKeys
          • getOwnKeyDescriptor
          • getOwnKeys
          • getSchema
          • hasKey
          • hasOwnKey
          • serialize
          • setName
          • size
          • toArray
          • unwrap
          • update
          • updateDeep
        • Observable reflections
          • getPriority
          • getKeyDependencies
          • getValueDependencies
          • isBound
          • keyHasDependencies
          • offInstanceBoundChange
          • offInstancePatches
          • offKeyValue
          • offPatches
          • offEvent
          • onEvent
          • onInstanceBoundChange
          • onInstancePatches
          • onKeyValue
          • onKeys
          • onKeysAdded
          • onKeysRemoved
          • onPatches
          • onValue
          • valueHasDependencies
          • setPriority
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

onInstanceBoundChange

  • Edit on GitHub

Listen to when observables of a type are bound and unbound.

onInstanceBoundChange(Type, handler, [queueName])

Register an event handler on the object Type that fires when instances of the type become bound (the first handler is added) or unbound (the last remaining handler is removed). The function passed as handler will be called with the instance as the first argument and true as the second argument when instance gains its first binding, and called with false when instance loses its last binding.

Person = DefineMap.extend({ ... });

var person = Person({});
var handler = function(instance, newVal) {
    console.log(instance, "bound state is now", newVal);
};
var keyHandler = function() {};

canReflect.onInstanceBoundChange(Person, handler);
canReflect.onKeyValue(obj, "name", keyHandler);  // logs person Bound state is now true
canReflect.offKeyValue(obj, "name", keyHandler);  // logs person Bound state is now false

Parameters

  1. Type {function}:

    A constructor function

  2. handler {function(instance, isBound)}:

    A function called with the instance whose bound status changed and the state of the bound status.

  3. queueName {String}:

    the name of a queue in [can-queues]; dispatches to handler will happen on this queue

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

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news