Я пытаюсь понять, как использовать трубу в реактивной форме, чтобы вход был принудительно введен в формат валюты. Я уже создал свою собственную трубу для этого, которую я тестировал в других областях кода, поэтому я знаю, что это работает как простой канал. Имя моей трубки - 'udpCurrency'
Самый близкий ответ, который я мог найти при переполнении стека, был следующим: использование Pipes внутри ngModel на элементах INPUT в Angular2-View. Однако это не работает в моем случае, и я подозреваю, что это имеет какое-то отношение к тому, что моя форма является реактивной
Вот весь соответствующий код:
Шаблон
<form [formGroup]="myForm" #f="ngForm">
<input class="form-control col-md-6"
formControlName="amount"
[ngModel]="f.value.amount | udpCurrency"
(ngModelChange)="f.value.amount=$event"
placeholder="Amount">
</form>
Компонент
import { Component, OnInit, HostListener } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
export class MyComponent implements OnInit {
myForm: FormGroup;
constructor(
private builder: FormBuilder
) {
this.myForm = builder.group({
amount: ['', Validators.required]
});
}
}
Ошибка:
ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'undefined: '. Current value: 'undefined: undefined'