Я разработал директиву для некоторой маскировки для моего поля по валютам, и я хотел бы подтвердить, возможно ли установить значение представления элемента управления с помощью маски, но сохранить значение моей модели с помощью самого числа.Возможно ли это?
Моя директива следующая:
@Directive({
selector: '[myCurrencyMask]'
})
export class MyCurrencyMaskDirective implements OnInit, OnDestroy {
private subscription: Subscription;
constructor(public ngControl: NgControl) {}
public ngOnInit() {
const ctrl = this.ngControl.control;
this.subscription = ctrl.valueChanges.subscribe((value) => {
this.onInputChange(value);
});
}
public ngOnDestroy() {
this.subscription.unsubscribe();
}
public onInputChange(event) {
let newVal = event.replace(/\D/g, '');
// ...
// skipping code here that mask the number as string..
// ...
// on this point, newVal is a string.
// I'd like to keep it on the view as this string,
// but on my model, I'd like to keep the variable as number..
this.ngControl.control.setValue(newVal, { emitEvent: false});
}
}
Заранее спасибо!