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
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
        • Methods
          • for
        • Type Symbols
          • can.isFunctionLike
          • can.isListLike
          • can.isMapLike
          • can.isValueLike
        • Get/Set Symbols
          • can.deleteKeyValue
          • can.getKeyValue
          • can.getValue
          • can.setKeyValue
          • can.setValue
          • can.updateValues
        • Shape Symbols
          • can.assignDeep
          • can.getName
          • can.getOwnEnumerableKeys
          • can.getOwnKeyDescriptor
          • can.getOwnKeys
          • can.hasKey
          • can.hasOwnKey
          • can.proto
          • can.size
          • can.updateDeep
        • Call Symbols
          • can.apply
          • can.new
        • Observe Symbols
          • can.getKeyDependencies
          • can.getValueDependencies
          • can.keyHasDependencies
          • can.offKeyValue
          • can.offPatches
          • can.offValue
          • can.onKeyValue
          • can.onKeys
          • can.onKeysAdded
          • can.onKeysRemoved
          • can.onPatches
          • can.onValue
          • can.valueHasDependencies
        • Types
          • Patch
        • keyFor
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

can.keyHasDependencies

  • Edit on GitHub

Check if there are any other objects that affect the value of a named property.

@@can.keyHasDependencies(key)

The @@can.keyHasDependencies symbol points to a function that returns true if there are any other events or property changes that will change the value of the property on the context object with key key; false otherwise.
By convention, if an object implementation distinguishes between unbound objects or values, and those which are bound without external dependencies (as is the case with can-map), @@can.keyHasDependencies may return undefined for unbound objects instead of false.

var someOtherObj;
var obj = {
    __bindEvents: {
        foo: [{ 
            handler: function() {},
            reads: [{ object: someOtherObj, key: "bar" }]
        }]
    }
};

obj[canSymbol.for("can.keyHasDependencies")] = function(key) {
    return this.__bindEvents[key] && 
        this.__bindEvents[key].filter(function(binding) {
            return binding.reads && binding.reads.length > 0;
        }).length > 0;
};

Parameters

  1. key {String}:

    the key to check for dependent bindings

Returns

{Boolean}:

true if there are any other objects that this keyed propertey depends on

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