импортирую компонет с FormGroup в конструкторе и достаю пишет Error NullInjector компонент с FormGroup
компоненты не инжектятся, почитайте про DI, пройдите tour of heroes
Компоненты не инжектятся в Di контейнер. Понял. А как пробрасывать пропсы только через сервисы ?
ну если так, можно через декоратор @ViewChild получить доступ к дочернему компоненту. Но это все же совсем нехорошая практика
Не ну в сервис пихать FormGroup тоже на хрень похоже
почему? наоборот надо стараться делать компоненты максимально глупыми, вынося логику в сервисы.
Ну смотри. Я скажу это ты посоветовал)
ахахах, ну, можем подождать мнение более прошаренных коллег, но я не первый год с ангуляром работаю, в своем опыте придерживаюсь такого подхода. + по проектам всегда были большие формы, связанные и переплетённые друг с другом.
Компоненты вполне себе инжектятся, но в соответствии с деревом инжекторов. Т.е. родителя в ребенка можно, наоборот - нет
значит был не прав, и про DI пошел читать уже я)
Не уверен, что в доке про такое пишут, тут проще попробовать и потом уже в исходники поглядеть по необходимости
di контейнер это одна из реализаций принципа Inversion of Control (IOC контейнер). Один раз свой костыльный di напишешь сразу все понятно)
Так что не дурить себе голову с ControlСontainer? Подписать детей на FormControl родителя ?
Зачем? Я не совсем понимаю ваш кейс, но мне кажется CVA решают все подобные проблемы, разве нет?
Родители в детей инжектятся вам верно. Для дериктив удобно
Из родителя покинуть нужную formGroup в дочерний компонент Родитель оркестрируют Дочерний компонент отображает
Ты еще скажи через инпут прокинуть
Кстати а почему это плохо? Много где пишут что это худший вариант а cva и cc лучший
Пишут. И даже вроди не плохо. Только вот почему-то засунули статью фиг знает куда и ещё пометили архивной https://angular.io/guide/dependency-injection-navtree
Плохая практика создавать shared формочки таким образом? Если да, то как лучше?
100 раз сказали, либо CVA либо бан, выбирай
А почему И как через cva управлять конкретными контролами?
Дизейблить могу?
ну да, вы к CVA обращаетесь через формконтрол, т.е все фичи контрола вам доступны
Дизейблить конкретный контрол в форме, которая как cva сделана из родительского компонента могу?
CVA это всего лишь интерфейс между формконтролом и компонентом/директивой а дизайблить контрол вы можете даже если ваша форме еще даже не темплейте не нарисована
Поэтому и спросил как лучше это сделать
дизэйблить из родителя, дергать из родителя методы детей. решительно осуждаю
Обсуждают сегодня