DoneJS StealJS jQuery++ FuncUnit DocumentJS
4.3.0
5.0.0 3.13.1 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-bind
      • can-compute
      • can-debug
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-backup
      • can-define-stream
      • can-define-stream-kefir
      • can-event-queue
      • can-kefir
      • can-list
      • can-map
      • can-map-define
      • can-observation
      • can-observation-recorder
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
      • can-value
    • Data Modeling
      • can-connect
      • can-connect-feathers
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-stache
      • can-stache-bindings
      • can-stache-converters
        • Examples
          • input[type=checkbox]
          • input[type=radio]
          • select
          • select[multiple]
        • Converters
          • boolean-to-inList
          • either-or
          • equal
          • index-to-selected
          • not
          • selected-to-index
          • string-to-any
      • can-stache-route-helpers
      • can-view-autorender
      • can-view-callbacks
      • 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-hash
      • can-route-mock
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-diff
      • can-globals
      • can-join-uris
      • can-key
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-queues
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-child-nodes
      • can-control
      • can-dom-data
      • can-dom-events
      • can-dom-mutate
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-fragment
    • 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-data-types
      • can-namespace
      • can-reflect
      • can-reflect-dependencies
      • 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

not

  • Edit on GitHub

A converter that two-way binds the negation of a value.

not(value)

When the getter is called, gets the value of the compute and returns the negation.

When the setter is called, sets the compute’s value to the negation of the new value derived from the element.

Note that not needs a compute so that it can update the scope’s value when the setter is called.

<input type="checkbox" checked:bind="not(val)" />

Parameters

  1. value {can-compute}:

    A value stored in a can-compute.

Returns

{can-compute}:

A compute that will be two-way bound by can-stache-bindings as a getter/setter on the element.

Use

Use this converter to two-way bind to the negation of some value. For example:

<input type="checkbox" checked:bind="not(val)" />
const map = new DefineMap( {
    val: true
} );

document.body.appendChild( template( map ) );

const input = document.querySelector( "input" );

input.checked; // -> false

map.val = false;

input.checked; // -> true

// Now if you click the checkbox
map.val === true; // because the checkbox is now false.

Combined with other converters

not() can be useful when used in combination with other converters that deal with boolean conversion. boolean-to-inList determines if an item is in a list. Here we wrap not() around this conversion so that the inverse is what is saved in the map’s value:

<input type="checkbox" checked:bind="not(boolean-to-inList(item, list))" />
const map = new DefineMap( {
    item: 2,
    list: new DefineList( [ 1, 2, 3 ] )
} );

document.body.appendChild( template( map ) );
const input = document.querySelector( "input" );


input.checked; // -> false

// Set `item` to a value not in the list
map.item = 4;

input.checked; // -> true

// Check the input, whick will set its value to `false`
// This will be converted to `true` by not() and pushed into the list

map.list.indexOf( 4 ); // -> 3

// Remove it from the list, which will be converted to true by not()
map.list.splice( 3, 1 );

input.checked; // -> true

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

On this page

Get help

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