Внутри моего angular приложения я сгенерировал компонент, который служит пользовательским FormControl
, и он реализует ControlValueAccessor
и Validator
.
Этот компонент используется внутри FormGroup
и имеет к нему прикреплен валидатор (например, его значение должно содержать не менее 10 символов или w / e). Когда происходит изменение значения внутри фактического input
внутри моего пользовательского FormControl
, срабатывает метод validate
. Внутри этого метода я могу получить доступ к FormControl
, но у него есть «состояние перед изменением», т. Е. Если пользователь ввел что-то неправильное (согласно ограниченному валидатору), оно выдаст мне свое последнее значение / ошибка / состояние ...
Чтобы добраться до обновленного состояния, я использую хакерский
setTimeout(()=>{// code goes here},0);
Как я могу получить обновленное состояние внутри validate
без setTimeout
? Или есть что-то вроде afterUpdate
хука, о котором я не знаю?
Вот мой стек-блиц: https://stackblitz.com/edit/angular-8-material-starter-template-tubfwx?file=src%2Fapp%2Fcustom-form-control%2Fcustom-form-control.component.ts