Angular NgControl: как установить одно значение для вида и сохранить оригинал в модели? - PullRequest
0 голосов
/ 16 марта 2019

Я разработал директиву для некоторой маскировки для моего поля по валютам, и я хотел бы подтвердить, возможно ли установить значение представления элемента управления с помощью маски, но сохранить значение моей модели с помощью самого числа.Возможно ли это?

Моя директива следующая:

@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});

    }
}

Заранее спасибо!

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