title: AngularJS Models
body: <p>I'm trying to wrap my head around AngularJS. I'm liking a lot of it, but a core concept seems to be escaping me – where are the models?</p>
  
  <p>If I have an application, for example, that displays multiple lists of transactions. One list queries a server for a paginated set of transactions matching some criteria, the other list uses a different criteria, but there may be some transactions that match both criteria and end up in both lists. Now:</p>
  
  <ol>
  <li><p>transactions that appear in both lists should be the SAME object in both scopes, right? Isn't that the big draw of data bindings, so an update in one place will be mirrored in the other?</p></li>
  <li><p>transactions might have complex behaviors abstracting raw server API requests, require subsequent queries to a server to gather more data, watch itself for changes and mark itself as dirty, where does all that go? </p></li>
  <li><p>lists themselves need to know when a transaction has been removed, so the same transaction deleted in one list will disappear from another. </p></li>
  <li><p>we might want to cache transactions in some flavor of client-side storage?</p></li>
  </ol>
  
  <p>So the question again: Where does all this go? Does it all get bunged in the $rootScope and controlled with controllers? Delegated to a service? </p>
  
  <p>Any direction here, no matter how vague, would be appreciated.</p>