Size: a a a

Angular - русскоговорящее сообщество

2021 February 28

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Здендяк
Привет, что лучше использовать когда надо сделать формы add/edit для 5-6 моделей из базы данных? Создавать для каждой сущности свои 2 компонента add/edit кажется глупо, хотелось бы как-то архитектурно грамотно это сделать, что-бы переиспользовать один компонент формы. Можете что-то посоветовать?
я сделал отдельно компонент с формой и компоненты add edit. подписался в форме на статус и валю чендж и пушу их в output, это альтернатива чтобы не использовать сторонние либы.
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Евгений Войтенко
я сделал отдельно компонент с формой и компоненты add edit. подписался в форме на статус и валю чендж и пушу их в output, это альтернатива чтобы не использовать сторонние либы.
можно делать компонент, который умеет сразу с формой общаться
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
реализовать интерфейс ControlValueAccessor
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Переслано от Евгений Войтенко...
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
вот пример
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Anton Shvets
можно делать компонент, который умеет сразу с формой общаться
это как можно пример? интересно.
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
думаете статус может измениться без value?
источник

E

Eugene in Angular - русскоговорящее сообщество
попробуйте ControlValueAccessor
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Eugene
попробуйте ControlValueAccessor
а для чего он нужен?
источник

AB

Alex Bu in Angular - русскоговорящее сообщество
Евгений Войтенко
а для чего он нужен?
Чаще всего для того, чтобы простые вещи сделать очень сложно)
источник

AB

Alex Bu in Angular - русскоговорящее сообщество
Евгений Войтенко
а для чего он нужен?
Я в контекст сильно не вчитывался, но похоже, что вам нужно объединить add и edit форм, структуры которых одинаковы, чтобы не плодить компоненты. Правильно понимаю?
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Alex Bu
Я в контекст сильно не вчитывался, но похоже, что вам нужно объединить add и edit форм, структуры которых одинаковы, чтобы не плодить компоненты. Правильно понимаю?
да, только это нужно не мне, а кому-то выше. я предложил свое решение, мне предложили этот control, теперь я пытаюсь понять какую проблему он решает)
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Евгений Войтенко
я сделал отдельно компонент с формой и компоненты add edit. подписался в форме на статус и валю чендж и пушу их в output, это альтернатива чтобы не использовать сторонние либы.
@AlexBuu вот мое решение
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
@AlexBuu вот кусок моей  реализации компонента с формой
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
вопрос как мой вариант переделать с этим contolom, при этом чтобы стало лучше, естественно
источник

SA

Saqhan Abaev in Angular - русскоговорящее сообщество
Добрый день. Подскажите решение проблемы: есть h2 тег, в котором я меняю содержимое, и при при переименовании каждый раз курсор перекидывает в начало строки. Даже когда слово вводишь -  буква прописывается и курсор сразу вперед перемешается
источник

j

jenia in Angular - русскоговорящее сообщество
Решил использовать store но пока в архитектуре слаб. Вопрос. Куда нужно покласть логику наполнения state при открытии страницы основываясь на jwt что уже в storage ?
источник

AB

Alex Bu in Angular - русскоговорящее сообщество
Евгений Войтенко
@AlexBuu вот кусок моей  реализации компонента с формой
Пока не очень понятно, зачем там делать комбайнЛейтест. Но чисто базово, add отличнается от edit только том, что там нет айтема для предзаполнения формы

То бишь, компонент дейстивительно один и может называться, например, add-edit-user компонент

Вы передадите туда либо сам айтем, либо айдишник айтема, чтобы этот компонент мог его получить самостоятельно. Неважно как вы это сделаете - через Input(), через path параметр, через query параметр или через сервис. Важно, что в момент, когда этот компонент будет грузиться и будет понятно, что есть айтем, вы просто сделаете

if (item) { this.fg.patchValue(item) }

Возможно, еще добавите туда дизейблинг некоторых отдельных контролов в зависимости от бизнесовой логики

Соответсвтенно, this.fg и будет отвечать за виджет добавления или редактирования айтема

Без проблем тут можно вэльюАкссеры пихать, но вероятно, это не понадобится
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Alex Bu
Пока не очень понятно, зачем там делать комбайнЛейтест. Но чисто базово, add отличнается от edit только том, что там нет айтема для предзаполнения формы

То бишь, компонент дейстивительно один и может называться, например, add-edit-user компонент

Вы передадите туда либо сам айтем, либо айдишник айтема, чтобы этот компонент мог его получить самостоятельно. Неважно как вы это сделаете - через Input(), через path параметр, через query параметр или через сервис. Важно, что в момент, когда этот компонент будет грузиться и будет понятно, что есть айтем, вы просто сделаете

if (item) { this.fg.patchValue(item) }

Возможно, еще добавите туда дизейблинг некоторых отдельных контролов в зависимости от бизнесовой логики

Соответсвтенно, this.fg и будет отвечать за виджет добавления или редактирования айтема

Без проблем тут можно вэльюАкссеры пихать, но вероятно, это не понадобится
я подписываюсь на изменение в форме и пушу на верх объект вида {model, formStatus} на верху принимаю решение
источник

AB

Alex Bu in Angular - русскоговорящее сообщество
Евгений Войтенко
я подписываюсь на изменение в форме и пушу на верх объект вида {model, formStatus} на верху принимаю решение
Изменения формы - это один поток valueChanges, этого должно быть достаточно. А что значит пушите вверх? И принимаете там решение? Зачем нужны промежуточные состояния? add-edit - процессы вполне конечные, которые хорошо обвязать собственно кнопкой "Сохранить", чтобы не размазывать эту форму по приложению

Расскажите, что хорошего получается из того, что кто-то сверху знает о незаконченном состоянии формы?
источник