var app = angular.module('plunker', []);

app.directive('toUpper', function() {
  return {
    require: 'ngModel',
    link: function (scope, element, attr, ngModel) {
      ngModel.$render = function () {
        element.val(ngModel.$viewValue);
      }
      ngModel.$parsers.push(function (value) {
        return value.toUpperCase();
      });
      
      element.bind('keyup', function () {
        ngModel.$setViewValue(element.val());
      });
    }
  }
});
<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.9/angular.js" data-semver="1.3.9"></script>
    <script src="app.js"></script>
  </head>

  <body>
    <textarea
      ng-model="prout"
      to-upper></textarea>
    <pre>{{ prout }}</pre>
    <input ng-model="prout">
  </body>

</html>
/* Put your css in here */