2016-08-18 2 views
0

In meinem Textfeldfeld müssen die Zeichen gezählt werden, um die Anzahl der verbleibenden Zeichen in Abhängigkeit von der definierten Maximallänge anzuzeigen. Aber die Zählung geht falsch, wenn Leerzeichen/Zeilenumbruchzeichen vom Benutzer eingegeben werden oder wenn Text von woanders eingefügt wird.angular.js textarea Zeichenanzahl zum Ausschließen von Zählbereichen und Zeilenumbruch

Ich muss wissen, ob Winkel hat eine Richtlinie oder eine Möglichkeit, den Ausschluss von Leerzeichen/Newline zu unterstützen gezählt.

<textarea class="form-control" maxlength="{{desc}}" my-maxlength = "{{desc}}" maxlen="maxlen" type="text" ng-model="problem.DESCRIPTION" aria-describedby="qDesc" id="questionDescription" name="questionDescription" ng-required="caseType" lang-check></textarea> 
<p ng-show="problem.DESCRIPTION.length > (desc-5)" class="text-danger pull-right" id="qDesc">{{ desc - problem.DESCRIPTION.length}} {{ resource["textcount.sublabel.maximumcharacters"] }</p> 

Antwort

0

Sie könnten einen Filter, um die Anzahl von Nicht-Leerzeichen

yourModule.filter('charCount', function() { 
    return function(text) { 
     return (text.match(/\S/g) || []).length; 
    }; 
}) 

und verwenden, die in Ihrer Vorlage

problem.DESCRIPTION | charCount 
0

Hier ist die AngularJS Lösung zurückzukehren Sie müssen versuchen,

zu verwenden

ng-trim = "false"

in TextArea-. Hier ist das Beispiel

<body ng-app> 
    <textarea ng-model="test" ng-trim="false" maxlength="1500"></textarea> 
    <span>{{1500 - test.length}} left</span> 
</body> 
+0

Ich sehe nicht, wie das OP helfen wird zu * "den Ausschluss des Raumes unterstützen/Newline gezählt" * – Phil

-1

Sie können nicht nur problem.DESCRIPTION.length laufen in ng-show oder in {{}}, wird es nicht laufen, müssen Sie eine Funktion erstellen, und fügen Sie in ng-show oder {{}}

In Ihrem Controller erstellen eine Funktion weißen Räumen eines Strings zu entfernen und das Rück seiner Länge

JS:

$scope.countLength = function(str){ 
    if (str==undefined){ 
     return 0;      
    } 
    else{ 
     return str.replace(/ /g,'', '').length; 
    } 
} 

HTML:

<p ng-show="countLength(problem.DESCRIPTION) > (desc-5)" class="text-danger pull-right" 
id="qDesc">{{ desc - countLength(problem.DESCRIPTION)}} 
{{ resource["textcount.sublabel.maximumcharacters"] }</p> 

Blick auf das Beispiel hier: JSFiddle

Verwandte Themen