toParent:to
One-way bind a value from the viewModel or element to the parent scope.
childProp:to="key"
Exports childProp
in the ViewModel to key in the parent scope. It also updates
key
with the value of childProp
when childProp
changes.
<my-component someProp:to="value"/>
Note: If key is an object, changes to the objects properties will still be visible to the component. Objects are passed by reference. See One Way Binding With Objects.
Parameters
- childProp
{String}
:The name of the property to export from the child components viewmodel. Use
this:to
or.:to
to export the entire viewModel. - key
{Literal Expression|KeyLookup Expression|Call Expression|Helper Expression}
:An expression that will be used to set in the parent scope.
child-prop:to="key"
Exports the element’s child-prop
property or attribute to key in the parent scope. It also updates
key
with the value of child-prop
when child-prop
changes.
<input value:to="name"/>
Parameters
- child-prop
{String}
:The name of the element’s property or attribute to export.
- key
{Literal Expression|KeyLookup Expression|Call Expression|Helper Expression}
:An expression whose resulting value with be used to set in the parent scope.
vm:childProp:to="key"
Exports childProp
in the ViewModel to key in the parent scope. It also updates
key
with the value of childProp
when childProp
changes.
<my-component vm:someProp:to="value"/>
Note: If key is an object, changes to the objects properties will still be visible to the component. Objects are passed by reference. See One Way Binding With Objects.
Parameters are the same as childProp:to="key"
el:child-prop:to="key"
Exports the element’s child-prop
property or attribute to key in the parent scope. It also updates
key
with the value of child-prop
when child-prop
changes.
<input el:value:to="name"/>
Parameters are the same as child-prop:to="key"
on:VIEW_MODEL_OR_DOM_EVENT:value:to='SCOPE_VALUE'
If the element has a ViewModel, listens to an event on the ViewModel and binds the element’s value to the SCOPE_VALUE when that event occurs.
If the element does not have a ViewModel, listens to an event on the element and binds binds the element’s value to the SCOPE_VALUE when that event occurs.
<my-component on:show:value:to="myScopeProp"/>
Parameters
- VIEW_MODEL_OR_DOM_EVENT
{String}
:A viewModel or DOM event.
- SCOPE_VALUE
{String}
:A value in the current scope.
Use
Depending on whether the element has a ViewModel, :to
bindings change
between exporting viewModel properties or DOM properties.
Exporting ViewModel properties
childProp:to="key"
can be used to export single values or the complete view model from a
child component into the parent scope. Typically, the values are exported to the references scope.
In the following example, it connects the selected driver in <drivers-list>
with an editable plateName in
<edit-plate>
:
<drivers-list selected:to="scope.vars.editing"/>
<edit-plate plateName:bind="scope.vars.editing.licensePlate"/>
Exporting DOM properties
child-prop:to="key"
can be used to export an attribute value into the scope. For example:
<input value:to="name"/>
Updates name
in the scope when the <input>
element’s value
changes.
Exporting Functions
You can export a function to the parent references scope with a binding like:
<my-tabs @addPanel:to="scope.vars.addPanel">
And pass the method like:
<my-panel addPanel:from="scope.vars@addPanel" title:from="'CanJS'">CanJS Content</my-panel>
Check it out in this demo:
Notice that @
is used to prevent reading the function. You can read more about
the @ operator in the can-stache docs.