Angular 5 - Отображение форм из лениво загруженных модулей независимо в централизованном модальном окне - PullRequest
0 голосов
/ 05 сентября 2018

Мое приложение написано с угловым 5 и разделено на следующие модули:

src
  app
    core
    shared (contains a modal component that can be used by all feature modules)
    dashboard (eager loaded, is the entry point to the application)
    customer (lazy loaded)
    products (lazy loaded)
    ...

Некоторые основные сведения о моем приложении:

  • Рабочие процессы в моем приложении поддерживаются механизмом бизнес-процессов.
  • В качестве конкретного примера:

    Сотрудник А может начать с создания клиента, но ему необходимо согласие работника Б в процессе. Итак, сотрудник А заканчивает его текущее задание и назначает его сотруднику Б для дальнейшей обработки.

  • Теперь, когда сотрудник B входит в приложение, он видит свою панель инструментов и на своей панели назначенные задачи.

Теперь самое сложное:

  • В настоящее время сотрудник B может нажать на назначенную задачу на панели инструментов, и происходит следующее:
    • Приложение направляется к клиентскому модулю и отображает модальное окно с формой, связанной с клиентом.
  • Что должно произойти:
    • Модал отображается как обычно, но приложение не направляет к клиентскому модулю.
    • I.e: формы из разных лениво загруженных модулей могут отображаться независимо от текущего представления.

Что я сделал до сих пор:

  • Я попробовал решение из этого вопроса: https://stackoverflow.com/a/48126510

    • В соответствии с ответом я должен был бы вызвать мой модал по ссылке маршрутизатора, как это:

    <a href="javascript:void(0)" [routerLink]="['/customer', {outlets: { modal: ['show-modal', 'true'] } } ]">Validate customer data</a>

    • Хотя это позволяет мне показывать форму из функционального модуля в общем виде, но опять же угловые маршруты к клиентскому модулю.

Теперь мой вопрос: как решить эту проблему?

Должен ли я создать новый общий модуль, который извлекает все соответствующие формы из лениво загруженных модулей? С помощью этой опции я могу выполнить свое требование, но тогда я бы перепутал части бизнес-логики всех модулей. Принцип «разделения интересов» будет нарушен, что также приведет к более высокой сложности.

Так что ты думаешь? У вас есть идея или намек, как решить эту проблему?

...