angular.module('CharCount', ['angular-character-count'])

  .controller('MainCtrl', function() {

    

  });


<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <title>Counter</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
  <script data-require="angular.js@2.0.0-alpha.26" data-semver="1.3.15" src="https://code.angularjs.org/1.3.15/angular.js"></script>
  <script data-require="jquery@2.1.1" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <link href="style.css" rel="stylesheet" />

</head>

<body ng-app="CharCount">
  <div ng-controller="MainCtrl">
    <form name="nameForm">
      <div class="row">
        <div class="col-sm-3">
          <input style="width:500px;" class="form-control" type="text" placeholder="Type here" name="firstFormName" ng-model="first_name" ng-maxlength="50" char-count warning-count="10" danger-count="5">
          <span class="error" ng-show="nameForm.firstFormName.$error.maxlength">Too long!</span>
          
          <input style="width:500px;" class="form-control" type="text" placeholder="Type here" name="lastFormName" ng-model="last_name" ng-maxlength="30" char-count warning-count="20" danger-count="10">
          <span class="error" ng-show="nameForm.lastFormName.$error.maxlength">Too long!</span>
          <input style="width:500px;" class="form-control" type="text" placeholder="Type here" name="nickFormName" ng-model="nick_name" ng-maxlength="20" char-count warning-count="10" danger-count="5">
          <span class="error" ng-show="nameForm.nickFormName.$error.maxlength">Too long!</span>
        </div>
      </div>
    </form>
  </div>



  <script src="angular-character-count.js"></script>
  <script src="app.js"></script>
</body>

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

.normalCharacter{
    color: #6D6B6B;
}
.warningCharacter{
    color: #eea236;
}
.dangerCharacter{
    color: #E21A34;
}
/**
 * @author Sufiyan momin
 * @description Add character count to input 
 * for example <input class="form-control" type="text" placeholder="Type here" 
 * name="firstFormName" ng-model="userInfoData.first_name" 
 * ng-maxlength="50" char-count warning-count="10" danger-count="5">
 */

angular.module('angular-character-count', []).directive('charCount', ['$parse', '$compile', function ($parse, $compile) {
    return {
        require: 'ngModel',

        link: function (scope, element, attr, ngModel) {
            var idP = Math.round(Math.random() * 1000000000);

            $(element).after('<p id=' + idP + '></p>');
            scope.$watch(function () {
                    
                    return ngModel.$viewValue;
                },
                function (newValue) {
                    
                    if (angular.isDefined(newValue)) {

                        var remainingChar = attr.ngMaxlength - newValue.length;
                         var remaiSpan = "<p>" + remainingChar + " of " + attr.ngMaxlength + " characters left</p>";
                        $('#' + idP).html(remaiSpan);
console.log(remainingChar);
                        
                        if (remainingChar > attr.warningCount && remainingChar > attr.dangerCount) {
                            $('#' + idP).removeClass('warningCharacter');
                            $('#' + idP).removeClass('dangerCharacter');
                            $('#' + idP).addClass('normalCharacter');
                        } else {
                            if (remainingChar <= attr.warningCount && remainingChar > attr.dangerCount) {
                                $('#' + idP).addClass('warningCharacter');
                                $('#' + idP).removeClass('dangerCharacter');
                                $('#' + idP).removeClass('normalCharacter');
                            } else {
                                $('#' + idP).removeClass('warningCharacter');
                                $('#' + idP).removeClass('normalCharacter');
                                $('#' + idP).addClass('dangerCharacter');
                            }
                        }
                    }
                }
            );

            
     


        }
    };
}]);