Я получил дату Primeng DatePicker, который имеет вход внутри.
Я хотел бы применить Директива ngx-mask на этот вход, но я не могу найти способ, который работает ...
ngx-mask: (https://npmjs.com/package/ngx-mask ) < /p>
Я попытался применить атрибуты маски непосредственно на дату, но кажется, что он работает только на вводе. < /li>
Я попробовал с ViewChild, а затем SetAttribute «Mask» на внутреннем входе. Маска атрибутов из NGX-маски является входной сигнализацией, поэтому ее нельзя изменить. /> Я попробовал с JavaScript Inputmask Lib (https://npmjs.com/package/inputmask), и она работает, когда я применяю директиву непосредственно на дату Primeng, поэтому я думаю, что это явно возможно!
Просто хочу попробовать, если я смогу сделать то же самое с ngx-mask < /p>
Вот указанная директива, которую я попробовал: < /p>
Код: Выделить всё
import { AfterViewInit, Directive, ElementRef, Inject, Input, InputSignal, Optional } from '@angular/core';
import { NgxMaskDirective, provideNgxMask } from 'ngx-mask';
import { DatePicker } from 'primeng/datepicker';
@Directive({
selector: 'dateMask',
providers: [provideNgxMask(), NgxMaskDirective]
})
export class DatePickerMaskDirective implements AfterViewInit {
private ngxMaskDirective: NgxMaskDirective;
constructor(
private datePicker: ElementRef,
) {}
ngAfterViewInit() {
const input = this.datePicker.nativeElement.querySelector('input');
if (input) {
this.ngxMaskDirective = new NgxMaskDirective();
this.ngxMaskDirective.writeValue(input.value);
input.addEventListener('input', (e: Event) => {
this.ngxMaskDirective.onInput(e as any);
});
input.addEventListener('blur', (e: Event) => {
this.ngxMaskDirective.onBlur(e as any);
});
}
}
}
// somes others attributes
dateMask
mask="99:99"
apm="true"
>
Подробнее здесь: https://stackoverflow.com/questions/794 ... components
Мобильная версия