ее редактировании отправляются несколько api запросов. И все отлично работает, кроме кнопки отмены. Потому, что нужно все сделанные api запросы как то отменить
Можете подсказать, как можно такую вещь организовать? Что можно почитать на эту тему?
Запросы в эффектах делаются?
да. У меня на каждое добавление/удаление подсущности вызывается Action, для которого есть эффект
Мне кажется, что отмена не слишком ложится на эффекты. Можно придумать что-то типа takeUntil(this.actions.ofType(StopAction)), только его надо поместить в правильное место, чтобы эффект не убить
если есть варианты реализации без эффектов - тоже хорошо. К примеру у меня есть форма редактирования Проекта и пользователь добавляет и удаляет Задачи. На каждое добавление и удаление бэкенд дал мне роут. Вопрос в том, как отменить изменения
Ну как бы я делал: блокировал ui спиннером во время выполнения эффекта, а на кнопку отменить просто восстанавливал исходное состояние через какой-нибудь ResetStateAction. Тогда запросы отменять не придется, просто обновляем стейт
можете пожалуйста подробнее описать? Вы предлагаете накапливать изменения, а потом по кнопке "ok" слать несколько запросов серверу?
Как у вас вообще форма устроена? Это ангуларовская форма или просто набор полей?
через ангуляровские реактивные формы
Так у вас по логике обращения к серверу могут быть только при сабмите
а есть пример, где при сабмите несколько запросов отправляются на сервер?
Что за запросы к серверу у вас вообще?
К примеру у меня есть такая структура, которую нужно редактировать project = { name: 'Project1', task: [ {name: 'task1'}, {name: 'task2'}, {name: 'task3'}, ] } Сервер отказывает редактировать ее одним куском. Поэтому у меня есть три роута для редактирования 1. для изменения имени проекта 2. для добавления задачи в проект 3. для удаления задачи из проекта Пользователь это видит как одну форму, в которой он может поменять имя и накидать /удалить задач.
А как у вас в тз написано делать? Вообще, это либо не форма (т.к. вам не нужно общее состояние), либо форма конечное состояние разбивает на поля, сравнивает изменения и отправляет на сервер по одному полю
тз такое. Раньше сервер принимал все одним куском. Потом изменил это на несколько запросов и мне надо фронт изменить, чтобы работал с этим(
Значит делайте второй вариант. Доставайте после сабмита поля, сравнивайте значения и формируйте список на обновление. В таком случае не придется отменять изменения до сабмита
Попробую, спасибо большое!
Обсуждают сегодня