input = document.getElementById 'input'
label = document.getElementById 'label'
button = document.getElementById 'button'
model = {}
updateLabel = (name) ->
label.innerHTML = "My name is #{name}"
input.addEventListener 'keyup', ->
model.name = input.value
button.addEventListener 'click', ->
model.name = 'John'
Object.observe model, (change) ->
updateLabel change[0].object.name
model.name = 'Fatih'
<div class="pure-form">
<fieldset>
<legend>Simple two way data binding with Object.observe</legend>
<input type="text" id="input" placeholder="Type your name" /> or
<button id="button" class="pure-button pure-button-primary">Click here to update name in the model</button>
<p id="label"></p>
</fieldset>
</div>
body { margin: 10px; }
External resources loaded into this fiddle: