Форматирование чисел по мере ввода в поле ввода в Angular2 с двойной привязкой

#angular #input #format #currency

#angular #ввод #форматирование #Валюта

Вопрос:

С помощью таких каналов, как

 <input....
    [ngModel]="whatever | myCurrencyPipe"
    (ngModelChange)="whatever = $event"
    type="text"
    name="myCurreny"
    ...
 

вы можете отформатировать существующее значение. Едва вы захотите перезаписать значение, у вас возникнут проблемы. И с помощью приведенного выше решения двойная привязка была отменена.

Существует множество библиотек jQuery, но я ищу собственные решения angular2.

Может кто-нибудь мне помочь?

Комментарии:

1. В чем именно заключается ваш вопрос, не могли бы вы уточнить, пожалуйста? Спасибо!

2. что-то вроде этого: github.com/customd/jquery-number для Angular2

3. Вы заглядывали в текстовую маску ? Его можно отформатировать , чтобы замаскировать значение валют.

4. спасибо @Roy, этого достаточно для начала,..

Ответ №1:

  1. Расширьте директиву ngModel. Перезаписать функцию viewToModelUpdate(значение), вызываемую после каждого изменения ввода и установки значения модели.
  2. Замените ngModel на вашу реализацию (providers[] в модуле)
  3. Считывание регулярного выражения, фильтра или средства форматирования из указанного атрибута непосредственно при вводе, например: <входной фильтр=»валюта» />

Рабочий пример вы можете найти здесь: http://stacktrase.com/2017/07/14/angularjs4-restrict-input-text-by-extending-ngmodel /