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
        • {{#routeCurrent(hash)}}
        • {{routeUrl(hashes)}}
      • 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

{{routeUrl(hashes)}}

  • Edit on GitHub

Returns a url using route.url.

routeUrl( hashes... [,merge] )

Calls url with hashes as its data argument and an optional merge.

This can be used on its own to create <a> hrefs like:

<a href="{{ routeUrl(page='todos' id=todo.id) }}">details</a>

Or in conjunction with other helpers:

{{makeLink( "details", routeUrl(page='todos', true) )}}

{{routeUrl([merge,] hashes...)}}

Passes the hashes to route.url and returns the result.

<a href="{{routeUrl(page='todos' id=todo.id)}}">details</a>

Parameters

  1. merge {Boolean}:

    Pass true to create a url that merges hashes into the current can-route properties.

  2. hashes {Hash Expression}:

    A hash expression like page='edit' recipeId=id.

Returns

{String}:

Returns the result of calling route.url.

Use

Use the routeUrl helper like:

<a href='{{routeUrl(page="recipe" id=5)}}'>{{recipe.name}}</a>

This produces (with no pretty routing rules):

<a href='#!&page=recipe&id=5'>{{recipe.name}}</a>

Using call expressions/parenthesis lets you pass the merge option to route. This lets you write a url that only changes specified properties:

<a href='{{ routeUrl(id=5, true) }}'>{{recipe.name}}</a>

The following demo uses routeUrl and {{#routeCurrent(hash)}} to create links that update can-route’s page attribute:

It also writes out the current url like:

{{ routeUrl(undefined, true) }}

This calls route.url({}, true) which has the effect of writing out the current url.

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