Cycle.js prevenDefault intent
https://github.com/staltz/cycle/
HTML
<script src="https://rawgit.com/staltz/cycle/v0.8.1/dist/cycle.js"></script>
<div id="cycleapp"></div>
JavaScript
var h = Cycle.h;
var Rx = Cycle.Rx;
var Model = Cycle.createModel(function (intent) {
return {
toggled$: intent.get('toggle$').startWith(false)
};
});
var View = Cycle.createView(function (model) {
return {
vtree$: model.get('toggled$')
.map(function (toggled) {
return h('div', [
h('input', {
onclick: 'checkboxClick$',
attributes: {
type: 'checkbox'
}
}),
h('span', String(toggled ? 'YEEES' : 'nooo')),
h('span', String(" yeah"))
]);
})
};
});
var Intent = Cycle.createIntent(function (view) {
return {
toggle$: view.get('checkboxClick$')
.map(function (ev) {
ev.preventDefault(); // comment me and learn something
return true;
})
.scan(function (prev, curr) { return !prev; })
};
});
var Renderer = Cycle.createRenderer('#cycleapp');
Renderer.inject(View);
Intent.inject(View);
View.inject(Model);
Model.inject(Intent);