их состояние в сторе. Сами формы в репрезентативных компонентах, получают данные через @Input().Я пытался подписаться на valueChanges и эмитить новое состояние формы,когда он обновляется, но сейчас это криво работает -
данные с бэка обновили форму в сторе -> форма отрендерилась -> форму изменил пользователь -> эмит нового состояния -> экшин сохраняет его в стор -> селектор выкидывает новое состояние через Input() в компонент
цикличная фигня получается
как это можно решить?(без супер костылей)
спасибо
1. Добавить в стор признак 'init'|'update' 2. Подписываться на экшен (разные экшены для инициализации и апдейта) Пока 2 варианта...
К пункту 1 тоже соответственно 2 разных экшена
хм,вариант) я вот ещё думал,а можно как-то селектору сказать,что если поле changed: true, то чтобы он не обновлял данные?
Тот же флаг, только другим боком
У тебя 2 источника данных стейт и изменение формы юзером. А должен быть только 1 - стейт. Самым логичным выглядит controlValueAccessor использовать
https://ngrx.io/guide/store/selectors#breaking-down-the-basics
А можно вообще инициализировать через take (1) и все. Короче смотря что нужно. Если нужна инциализация на горячем потоке одно, на холодном другое
не знал,что можно contolValueAccessor для nested forms использовать,круто
сейчас так и сделаю,спасибо)
А может setValue...emitEvent:false
Просто я понимаю вам нужен вариан на горячем. Типа могут вообще данные приходить произвольно ... по сокету например? И вы такой редактируете форму и хлоп окошко всплывает "пришли новые данные" и ваша форма сама заполнилась
нет,без сокетов,все проще) просто не знал,как сделать чище это,поэтому сюда пришел☺️
Так может оно вам вообще не нужно в таком варианте)
Обсуждают сегодня