Slide 10
Slide 10 text
/**
* ΞϓϦέʔγϣϯ
* @param sources
* @returns {{DOM: Observable}}
*/
function main(sources: Sources): Sinks {
// ΩʔೖྗΠϕϯτΛऔಘ ( Intent )
const input$: Observable = sources.DOM.select('.field').events('input');
// ೖྗΠϕϯτ͔Βݱࡏͷঢ়ଶͳ͍͠Λऔಘ ( Model )
const name$: Observable = Observable.from(input$)
.map((ev: Event) => ev.target.value)
.startWith('');
// ݱࡏͷঢ়ଶΛը໘ʹඳը ( View )
const vdom$: Observable = name$.map(name => {
return div('.well', [
div('.form-group', [
label('Name: '),
input('.field.form-control', {attrs: {type: 'text'}}),
]),
hr(),
h1(`Hello ${name}`)
]);
});
// ݁ՌΛυϥΠόʹग़ྗ͢Δ ( Sinks )
return {
DOM: vdom$
};
}