2016-08-18 85 views
0

我的textarea字段需要對字符進行計數,以顯示相對於定義的最大長度剩餘的字符數。 但是,當用戶輸入空格/換行符或從別處粘貼文本時,計數出錯。angular.js textarea字符計數以排除計數空格和換行

我需要知道角度是否有任何指令或方法來支持排除空格/換行符的計數。

<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> 

回答

0

你可以做一個過濾器返回的非空白字符

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

的數量和使用,在您的模板

problem.DESCRIPTION | charCount 
0

這裏是angularjs解決方案您需要嘗試使用

納克修整= 「假」 中textarea的

。這裏是例子

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

我不明白這是怎麼回事,以幫助OP爲* 「支持的空間排斥/換行符計」 * – Phil

-1

ng-show你不能只是運行problem.DESCRIPTION.length{{}},它不會跑,你必須創建一個功能和ng-show{{}}

插入您的控制器創建一個函數刪除字符串的空格,並返回其長度

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> 

看看這裏的例子: JSFiddle