我正在将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
链接到我的代码。任何帮助将不胜感激。
答案 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>