Как я могу получить маскируемое значение ngx? - PullRequest
1 голос
/ 13 марта 2020

Я пытаюсь создать простое поле для номера телефона с помощью модуля ngx-mask, например:

<mat-form-field>
              <input matInput formControlName="PhoneNumber" placeholder="Phone number" mask="(000) 0000-00" prefix="+1" [showMaskTyped]="true">
</mat-form-field>

Это работает, но значение в элементе управления PhoneNumber равно 999999999. Как сохранить в элементе управления значение с маской, ie специальные символы и префикс? В основном мне нужно сохранить значение, которое видит пользователь: +1 (999) 9999-99

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Use [dropSpecialCharacters] = "false"

<mat-form-field>
   <input matInput formControlName="PhoneNumber" placeholder="Phone number" mask="(000) 0000-00" prefix="+1" [showMaskTyped]="true" [dropSpecialCharacters]="false">
</mat-form-field>
0 голосов
/ 13 марта 2020

Я рекомендую вам использовать ElementRef. Вы должны определить входные данные ElementRef в вашем ts файле:

@ViewChild('customInput', {static: false}) inputEl: ElementRef;

Затем определите его в вашем html, чтобы код вашего шаблона был изменен на этот

<mat-form-field>
          <input #customInput matInput formControlName="PhoneNumber" placeholder="Phone number" mask="(000) 0000-00" prefix="+1" [showMaskTyped]="true">
</mat-form-field>

Теперь вы можете получить доступ к фактическому маскированному значению вашего #customInput в ts файле:

showMeInput(): void {
    console.log(this.inputEl.nativeElement.value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...