Binds an module:utils/observablemixin~Observable observable to an HTML element attribute or a text
node textContent so it remains in sync with the observable attribute as it changes.
Unlike module:ui/template~BindChain#to, it controls the presence of the attribute or textContent
depending on the "falseness" of an module:utils/observablemixin~Observable attribute.
const bind = Template.bind( observable, emitter );
new Template( {
tag: 'input',
attributes: {
// <input checked> when `observable#a` is not undefined/null/false/''
// <input> when `observable#a` is undefined/null/false
checked: bind.if( 'a' )
},
children: [
{
// <input>"b-is-not-set"</input> when `observable#b` is undefined/null/false/''
// <input></input> when `observable#b` is not "falsy"
text: bind.if( 'b', 'b-is-not-set', ( value, node ) => !value )
}
]
} ).render();
Learn more about using if() in the module:ui/template~TemplateValueSchema.
An attribute name of module:utils/observablemixin~Observable used in the binding.
OptionalvalueIfTrue: unknownValue set when the module:utils/observablemixin~Observable attribute is not undefined/null/false/'' (empty string).
Optionalcallback: (value: TObservable[TAttribute], node: Node) => true | FalsyValueAllows for processing of the value. Accepts Node and value as arguments.
Binds an module:utils/observablemixin~Observable observable to either:
textContent, so it remains in sync with the observable
attribute as it changes,Some common use cases of to() bindings are presented below:
const bind = Template.bind( observable, emitter );
new Template( {
tag: 'p',
attributes: {
// class="..." attribute gets bound to `observable#a`
class: bind.to( 'a' )
},
children: [
// <p>...</p> gets bound to observable#b; always `toUpperCase()`.
{
text: bind.to( 'b', ( value, node ) => value.toUpperCase() )
}
],
on: {
click: [
// An observable will fire "clicked" upon "click" in the DOM.
bind.to( 'clicked' ),
// A custom callback will be executed upon "click" in the DOM.
bind.to( () => {
...
} )
]
}
} ).render();
Learn more about using to() in the module:ui/template~TemplateValueSchema and
module:ui/template~TemplateListenerSchema.
An attribute name of module:utils/observablemixin~Observable.
Binds an module:utils/observablemixin~Observable observable to either:
textContent, so it remains in sync with the observable
attribute as it changes,Some common use cases of to() bindings are presented below:
const bind = Template.bind( observable, emitter );
new Template( {
tag: 'p',
attributes: {
// class="..." attribute gets bound to `observable#a`
class: bind.to( 'a' )
},
children: [
// <p>...</p> gets bound to observable#b; always `toUpperCase()`.
{
text: bind.to( 'b', ( value, node ) => value.toUpperCase() )
}
],
on: {
click: [
// An observable will fire "clicked" upon "click" in the DOM.
bind.to( 'clicked' ),
// A custom callback will be executed upon "click" in the DOM.
bind.to( () => {
...
} )
]
}
} ).render();
Learn more about using to() in the module:ui/template~TemplateValueSchema and
module:ui/template~TemplateListenerSchema.
An attribute name of module:utils/observablemixin~Observable.
Allows for processing of the value. Accepts Node and value as arguments.
Binds an module:utils/observablemixin~Observable observable to either:
textContent, so it remains in sync with the observable
attribute as it changes,Some common use cases of to() bindings are presented below:
const bind = Template.bind( observable, emitter );
new Template( {
tag: 'p',
attributes: {
// class="..." attribute gets bound to `observable#a`
class: bind.to( 'a' )
},
children: [
// <p>...</p> gets bound to observable#b; always `toUpperCase()`.
{
text: bind.to( 'b', ( value, node ) => value.toUpperCase() )
}
],
on: {
click: [
// An observable will fire "clicked" upon "click" in the DOM.
bind.to( 'clicked' ),
// A custom callback will be executed upon "click" in the DOM.
bind.to( () => {
...
} )
]
}
} ).render();
Learn more about using to() in the module:ui/template~TemplateValueSchema and
module:ui/template~TemplateListenerSchema.
A DOM event name or an event callback.
The return value of ~Template.bind
Template.bind(). It providesto()andif()methods to create the module:utils/observablemixin~Observable observable attribute and event bindings.