Я ищу лучший способ маршрутизации между моими компонентами в Angular 2. В моем приложении я перехожу со страницы на страницу, отправляя форму:
- На странице А отображается форма и кнопка отправки для перехода к следующему шагу.
- Данные, введенные пользователем в форме страницы A, используются для вызова серверного действия с использованием ajax,
- Страница B показывает результат вызова ajax и новую форму для перехода к следующему шагу (страница C)...
На каждом шаге бэкенд может возвращать ошибку и мы либо возвращаемся на предыдущую страницу, либо отображаем страницу с ошибкой (фатальная ошибка).
Я вижу два простых варианта вызова ajax:
- Компонент A только отображает форму и перенаправляет входные параметры компоненту B. Компонент B запускает вызов ajax и отображает результат.
- ИЛИ компонент A запускает вызов ajax с входными параметрами, которые у него есть, и передает результат компоненту B для отображения. В случае ошибки компонент А снова отобразится.
Проблема с вариантом 1 заключается в том, что в случае ошибки бэкэнд ответит страницей бизнес-модели и сообщением об ошибке. Компонент B должен будет переслать результат компоненту A, чтобы страница A могла быть повторно отображена.
Проблема с вариантом 2 заключается в том, что компонент A имеет часть бизнес-логики компонента B, что не совсем подходит для инкапсуляции компонентов.
Мой вопрос: есть ли хороший шаблон проектирования для этого? Должен ли я использовать промежуточный компонент, например?
Спасибо за помощь.