按键事件在离子框架中不起作用

keypress event not working in ionic framework

事实很奇怪。我正在尝试限制需要描述的文本区域。在浏览器中使用 "keypress" 事件,一切正常,但应用程序无法运行。没有收据错误或类似的问题,只是无法正常工作。

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,如果它有效,但在文本区域中仍在写入并且在用户按下 space 之前不会限制限制。

将 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;
}