对输入的字符进行计数,并在x个字符之后增加一个变量

Count characters of input and increment a variable after x characters

本文关键字:字符 增加 之后 变量 一个 并在 输入      更新时间:2023-09-26

我正在将AngularJS添加到一个项目中,需要计算文本区域的长度,每160个字符增加"页面"(消息应用程序)的总数-如果文本被删除则递减。

用Angular获取textarea的长度很简单:

<textarea ng-model="message" class="form-control" name="message" id="message" cols="30" rows="2"></textarea>
<span class="help-block"><strong>Characters</strong>: <% message.length > 0 ? message.length : 0 %></span>

我猜处理逻辑以确定页面数量的最佳位置是在我的Javascript代码中,但我无法弄清楚如何将ng-model链接到我的代码。

不需要修改ng,直接在dom中修改即可:

 <textarea ng-model="message" class="form-control" name="message" id="message" cols="30" rows="2"></textarea>
 <span class="help-block"><strong>Characters</strong>: {{ (message.length - message.length % 160) / 160 + 1 }}</span>

jsFiddle: http://jsfiddle.net/EEMd3/

编辑

要包含其他细节,只需将它们添加到计算中:

{{ (message.length - message.length % 160 + user.name + agency.nickname + ...) / 160 + 1 }}

在Evandro Silva的帮助下-使用ng-change:

$scope.change = function(length)
        {
            $scope.pages = Math.round(length / 160) + 1;
        }
<textarea ng-model="message" class="form-control" ng-change="change(message.length)" name="message" id="message" cols="30" rows="2"></textarea>
<span class="help-block"><strong>Characters</strong>: <% message.length > 0 ? message.length : 0 %></span>