title: What Exactly is a ViewModel?
body: <p>I'm pretty decent with Angular, I understand it's MVVM design pattern. </p>
  
  <p>From a very basic level, I have come to know the following:</p>
  
  <p>-view: the visual output a user can see of the application</p>
  
  <p>-model: the data that populates the application</p>
  
  <p>-viewmodel: ???</p>
  
  <p>I have seen it used the following naming convention for a custom directive:</p>
  
  <pre><code>controller: myController,
          controllerAs: 'vm'
  </code></pre>
  
  <p>I'm also aware the controller really connects the view and the model. But beyond that level of understanding, Im having trouble understanding exactly its significance. </p>