Angular ng-keypress событие для изменения ввода - PullRequest
1 голос
/ 16 апреля 2020

Я хочу изменить свое входное значение и отделить его, используя da sh -

<input type="text" ng-keypress="addHyphen($this)" id="sortcode" name="sortcode" maxlength="6" ng-model="data.branchTransitNumber" />

Для достижения того же самого я написал событие ng-keypress и пытаюсь изменить ввод.

$scope.addHyphen = function(ele) {
   console.log(ele);
   //var ele = document.getElementById(sortcode)
   var finalVal = ele.match(/.{1,2}/g).join('-');
   document.getElementById(sortcode).value = finalVal;
}

Код дает ele как undefined. Я даже пытался получить элемент по идее, но он также дает undefined.

Ввод: 11111

При наборе: 11-11-11

1 Ответ

1 голос
/ 16 апреля 2020

Я не уверен, как вы попали в $this, но обработчик событий передает только $event

Выражение для оценки при нажатии клавиши. (Объект события доступен как $ event и может быть запрошен для keyCode, altKey и т. Д. c.)

https://docs.angularjs.org/api/ng/directive/ngKeypress#ngKeypress -аргументы

Правильный способ получить элемент: angular.element($event.target)

Вот так:

angular
  .module('app', [])
  .controller('ctrl', $scope => {
    $scope.addHyphen = $event => {
      const $this = angular.element($event.target);
      console.log($this);
    }
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
   <input type="text" ng-keypress="addHyphen($event)" id="sortcode" name="sortcode" maxlength="6" ng-model="branchTransitNumber" />
</div>

Ссылка: Получите это в angularjs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...