title: control characters (\n, \t, etc) are not being updated in the textarea input immediately
body: <p>My first issue is, in the textarea if I hit <kbd>Tab</kbd> when its empty and start typing, the value it contains does not have the <code>\t</code> character in the beginning of the string. (Irrespective of how many times the tab key was pressed prior to typing normal text).</p>
  
  <p>Second issue. After typing is some text and hitting <kbd>Tab</kbd>, again the <code>\t</code> character doesn't appear in the value. However, if I resume typing text at this moment, value in the textarea now contains that <code>\t</code> character as expected at that position. This is the case if I typed <kbd>Enter</kbd>, the <code>\n</code> character doesn't appear; but if I kept on typing it appears in the same fashion as before?</p>
  
  <p>How to handle these two issues?</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>angular.module('myapp', [])
    .controller('MainCtrl', function($scope) {
      $scope.foo = {
        txt: ''
      };
  
      $scope.kd = function(e) {
  
        if (e.keyCode === 9) {
          var ta = angular.element(e.target);
          var val = ta.val();
          var st = ta[0].selectionStart,
            ed = ta[0].selectionEnd;
          ta.val(val.substring(0, st) + '\t' + val.substring(ed));
          ta[0].selectionStart = ta[0].selectionEnd = st + 1;
          //console.log(ta.triggerHandler);
          ta.triggerHandler('change');
          e.preventDefault();
        }
      }
    });</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"&gt;&lt;/script&gt;
  &lt;div ng-app="myapp"&gt;
    &lt;div ng-controller="MainCtrl"&gt;
      &lt;textarea ng-model="foo.txt" rows="10" cols="75" ng-keydown="kd($event)"&gt;&lt;/textarea&gt;
      &lt;br&gt;
      &lt;br&gt;
      &lt;pre&gt;
        {{ foo | json }}
      &lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>