полем ввода и ngModel, метод setValue не изменяет представление?
https://stackblitz.com/edit/stackblitz-starters-h8klxk?file=src%2Fmain.ts
https://angular.io/errors/NG0100
Да, ошибка есть, не заметил. Но она не влияет на поведение: попробовал, оставив ошибку, сделать через [(ngModel)]="name" и значение меняется даже вместе с ошибкой, а вот с setValue() попробовал убрать ошибку вызвав обнаружение изменений, но значение в представлении инпута не поменялось.
я могу ещё раз переслать ссылку
там по моему надо standalone настройку ёбнуть чтобы оно трекало изменения от control, а так по дефолту control только для подписки на valueChanges юзается снаружи
standalone, если не ошибаюсь, действует только если есть род. форма.
вывод: придется добавить род.форму если хотите ожидаемое поведение
Короче, да, с жизненными циклами что-то не сходится, и я не понимаю что, а так если через кнопочку вызвать метод обновления, то всё работает: https://stackblitz.com/edit/stackblitz-starters-h8klxk?file=src%2Fmain.ts
Спасибо за наводку.
например если таймаут поставить, то работает
хммм блин значит оно и так по дефолту standalone, тогда да, CD не тригерилось до этого
Ага, подефолту игнорируется без род.формы
Как оказалось, ngAfterViewInit вызывается также как и ngOnInit один раз за весь жизненный цикл компонента, вот и почему ничего не обновлялось после того как представление уже было отрисовано. Переместил всё в ngAfterViewChecked, который вызывается после каждого обнаружения изменений и вуаля, всё работает.
Обсуждают сегодня