======
Routes
======
Routes are defined by using ~ as a prefix.
The routes will be used by a dispatcher and linkto components.
::
%import components
%inherit base
~routes:
list: '/blog/posts'
show: '/blog/post/{id}'
edit: '/blog/post/{id}/edit'
*content:
ul:
li:
base-linkto action='list': List
li:
base-linkto action='show' id=1: Details
li:
base-linkto action='edit' id=1: Edit
The rendered result:
::
zml
The linkto-component of the base namespace is simply defined:
::
%namespace base=doonx.org/base
*linkto:
a href=_path(action, _params):
{_children[0]}
The _path function is a core function of the zml implementation.
It will return an url path by interpolating the parameters into the route path definition.
The routevars wrapped by moustaches in the route-section (~) with the corresponding action name will be replaced by the values of the second function parameter of the _path function.
The _params context property contains all parameters of a component.
F.e. the following line will use the linkto-component with the parameters action and id.
The component can access the parameters by using the _params context property. The linkto-component will forward the _params property as a parameter of the _path function.
::
base-linkto action='edit' id=1