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
      • 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
        • static
          • currentRule
          • data
          • deparam
          • isCurrent
          • link
          • param
          • register
          • rule
          • start
          • stop
          • url
          • urlData
      • 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

urlData

  • Edit on GitHub

Specifies an observable value that represents the URL. Useful for changing what URL route is cross-bound to.

ValueObservable

urlData is an observable value that represents the part of the URL cross bound to the data state object. It can be set to other observable urls like <a href="can-route-pushstate.html" title="Changes can-route to use pushstate to change the window's pathname instead of the hash. import route from "can-route-pushstate";

route( "{page}", { page: "home" } ); route.start();

route.attr( "page", "user" );

location.pathname; // -> "/user"">can-route-pushstate or can-route-mock. It defaults to can-route-hash.

The following shows setting urlData to another observable.

import {route, RouteMock, DefineMap} from "can";

// route.data will update routeMock and be updated by changes in
// routeMock.
var routeMock = route.urlData = new RouteMock();
var routeData = route.data = new DefineMap({},false);

// begin binding
route.start()

// simulate setting the URL
routeMock.value = "foo=bar";

routeData.foo //-> "bar";

Creating your own ValueObservable

WARNING: The following is non-normative and may change in a future release. Please let us know if you are trying to create your own observable and we will work with you to stabilize the API.

Besides implementing the standard ValueObservable symbols:

  • getValue
  • setValue
  • onValue
  • offEvent

The ValueObservable should include the following properties:

  • paramsMatcher - A regular expression used to test if the URL is formatted correctly for deparam.
  • querySeparator - A string that separates when arbitrary key-value pairs begin in the url (Example: "?").
  • root - A string value used to identify the part of the url where routing begins. For example, can-route-hash defaults to "#!"

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