计算输入字符并在x字符后增加变量

时间:2014-06-18 17:03:05

标签: javascript angularjs

我正在将AngularJS添加到项目中,需要计算textarea的长度,每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链接到我的代码。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

不需要进行ng-change,你可以直接在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 }}

答案 1 :(得分:0)

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