More Mithril Examples

HTML

http://fiddle.jshell.net/ramnathv/eaj25p56/#run

CoffeeScript

LikeButton =
  controller: ->
    state:
      liked: m.prop(false)
    handleClick: (e) ->
      @state.liked [email protected]()
  view: (c) ->
    text = if c.state.liked() then 'like' else 'havent liked'
    m 'p', {onclick: c.handleClick.bind(c)}, "You #{text} this. Click to toggle"
    
 
CheckBox = 
  controller: (props) ->
    state:
      isChecked: m.prop(false)
    label: ->
      if @state.isChecked() 
        props.labelOn 
      else 
        props.labelOff
  view: (c, props) -> 
    m 'div', [
      m 'input[type="checkbox"]', {
        onchange: m.withAttr("checked", c.state.isChecked)
        checked: c.state.isChecked()
      }
      m 'label', c.label()
    ]
     
myCheckBox = m.component(CheckBox, {labelOn: "On", labelOff: "Off"})
m.mount(document.body, myCheckBox)