title: How does data binding work in AngularJS?
body: <p>How does data binding work in the <code>AngularJS</code> framework?</p>
  
  <p>I haven't found technical details on <a href="http://angularjs.org" rel="noreferrer">their site</a>. It's more or less clear how it works when data is propagated from view to model. But how does AngularJS track changes of model properties without setters and getters?</p>
  
  <p>I found that there are <a href="https://stackoverflow.com/questions/1029241/javascript-object-watch-for-all-browsers">JavaScript watchers</a> that may do this work. But they are not supported in <a href="http://en.wikipedia.org/wiki/Internet_Explorer_6" rel="noreferrer">Internet&nbsp;Explorer&nbsp;6</a> and <a href="http://en.wikipedia.org/wiki/Internet_Explorer_7" rel="noreferrer">Internet&nbsp;Explorer&nbsp;7</a>. So how does AngularJS know that I changed for example the following and reflected this change on a view?</p>
  
  <pre><code>myobject.myproperty="new value";
  </code></pre>