var limite = 140;
$scope.resta = 0;
$('#counter').html("Quedan "+limite+" caracteres");
$("#text_view").keyup(function(e, $event){
var box = $(this).val();
var value = (box.length *100) / limite;
$scope.resta = limite - box.length;
if(box.length <= limite || $scope.resta > 0){
$('#counter').html("Quedan "+$scope.resta+" caracteres");
}
else{
$('#counter').html("Quedan "+$scope.resta+" caracteres");
e.preventDefault();
return;
}
});
同时尝试使用keyup,如果它可以工作,但是在textarea中仍然在写,并且在用户按下空格之前不会重新设置限制。
答案 0 :(得分:2)
将Angularjs和Jquery代码混合在一起并不是一种好的做法。如果您没有任何选项,则将jquery代码移动到指令。 Angularjs非常强大,所以你可以在没有jquery帮助的情况下重新安装令人惊奇的东西,减少代码量。您甚至可以在没有单个jquery代码的情况下达到您的要求。
HTML
<textarea ng-maxlength="{{limite}}" ng-change="trackChracterCount(box)" ng-model="box"></textarea>"Quedan {{resta}} caracteres"
的Javascript
$scope.limite = 140;
$scope.resta = $scope.limite;
var trackChracterCount = function(box){
var limite = $scope.limite;
var resta = $scope.resta;
$scope.resta = limite - box.length;
}