Summit.js
UI Library Techniques
Essentials

Forms

s-model creates a two-way binding between a form control and a piece of state. Type in the field and the state updates; change the state and the field follows.

Hello.

Source
<div s-data="{ name: '' }">
  <input s-model="name" placeholder="Your name" />
  <p>Hello<span s-text="name ? ', ' + name : ''"></span>.</p>
</div>

Every control type

s-model reads and writes the right property for each kind of input, so the same directive covers all of them.

Source
<div s-data="{ text: 'hi', agree: true, size: 'M', picks: [] }">
  <p><input s-model="text" /> <span s-text="text"></span></p>
  <p><label><input type="checkbox" s-model="agree" /> Agree</label> <span s-text="agree"></span></p>
  <p>
    <select s-model="size"><option>S</option><option>M</option><option>L</option></select>
    <span s-text="size"></span>
  </p>
  <p>
    <label><input type="checkbox" value="a" s-model="picks" /> A</label>
    <label><input type="checkbox" value="b" s-model="picks" /> B</label>
    <span s-text="JSON.stringify(picks)"></span>
  </p>
</div>
  • Text, textarea, number, range: bound to the value.
  • Checkbox: a boolean when bound to a single control, or an array of the checked values when several share one model.
  • Radio: the value of the selected control.
  • Select: the chosen value, or an array when the select is multiple.

Modifiers

Modifier Effect
.lazy / .change Sync on change instead of every keystroke
.blur Sync only when the field loses focus
.number Coerce the value to a number
.boolean Coerce "true" / "false" strings to a boolean
.debounce Wait for typing to pause before syncing (default 250ms)
.fill Seed empty state from the control's initial value
<input type="number" s-model.number="age" />
<input s-model.debounce.300ms="search" />

Building custom inputs

Every element with s-model exposes el._summitModel, an object with get and set, so a wrapper component can drive the same binding from custom controls. The full reference is on the s-model page.

Esc
Loading search...
Recent
Suggested
No results for "".
to navigate to select esc to close