title: AngularJS data binding types
body: <p>I know this is an old and 100 times-answered question, but things are getting more complex with the latest releases, thus causing me a lot of confusion.
  I'd like to know what is the difference between the four currently available ways to declare a data binding for an attribute in a directive.
  Specifically:</p>
  
  <ul>
  <li><code>@</code> Text binding</li>
  <li><code>=</code> Two-way binding</li>
  <li><code>&amp;</code> Method binding (although some call it one-way binding)</li>
  <li><code>&lt;</code> One-way binding</li>
  </ul>
  
  <p>I'm interested in particular in the difference between the last two, given that they seem to have overlapping functionalities and I really can't tell the difference and the advantages of one against the other.</p>