compteur de caractères de zone de texte angularjs

Bonjour, j’ai un compteur de caractères pour une zone de texte. Mon problème est que ça ne compte pas les espaces ou les sauts de ligne. Comment puis-je le faire pour qu’il le fasse?


{{1500-createprofilefields.description.length}} Characters

C’est parce qu’angularJS a automatiquement coupé votre modèle.

Si vous utilisez angularJS 1.1.1 ou plus récent, ajoutez ng-sortingm="false" à textarea .

Exemple de travail: http://jsfiddle.net/9DbYY/

Avec Angular, textarea a un argument optionnel appelé ngTrim . Selon la page textarea angular :

Si la valeur est fausse, Angular ne rognera pas automatiquement l’entrée. (par défaut: true)

Usage:

  

Le code suivant montre comment utiliser ngTrim pour empêcher Angular de couper l’entrée:

     Character count     

{{15 - countmodel.length}} left


Notez que input[text] a le même argument facultatif ngTrim ( page de saisie angular ).

Créer une directive nommée charCount

 .directive('charCount', ['$log', '$timeout', function($log, $timeout){ return { ressortingct: 'A', comstack: function comstack() { return { post: function postLink(scope, iElement, iAttrs) { iElement.bind('keydown', function() { scope.$apply(function() { scope.numberOfCharacters = iElement.val().length; }); }); iElement.bind('paste', function() { $timeout(function () { scope.$apply(function() { scope.numberOfCharacters = iElement.val().length; }); }, 200); }); } } } } }]) 

Dans votre code HTML, appelez la directive char-count et accédez à la variable numberOfCharacters

  Number of Characters: {{ numberOfCharacters }}

vous pouvez utiliser une fonction avec l’appel ng-change = “”

  

{{1500-chrLength}} Characters

et dans controller.js

 $scope.countLength = function(val){ $scope.chrLength = val; }