Передача входных данных в загруженный ленивым модуль Angular - PullRequest
0 голосов
/ 18 марта 2019

У меня есть компонент с именем NewsComponent, который используется в моем приложении.Я хотел бы расширить его до NewsModule и добавить систему маршрутизации для отображения отдельных статей, чтобы мои маршруты выглядели как

/some-component
/some-component/news
/some-component/news/article/12345
/other-component
/other-component/news
/other-component/news/article/23456

Чтобы сделать его маршруты относительными, я лениво загружаю модуль:

const routes: Route = [
  {
    path: 'some-component',
    component: SomeComponent
  },
  {
    path: 'some-component/news',
    component: SomeNewsWrapperComponent,
    children: [
      {
        path: '',
        loadChildren: './news/module#NewsModule'
      }
    ]
  }
  // same for /other-component
]

Проблема в том, что NewsComponent отображает визуальные эффекты на основе некоторых входных данных, и я использовал их для передачи через @Input.Но теперь, когда компонент инкапсулирован в своем лениво загруженном модуле, это больше невозможно.

Я мог бы создать NewsService в третьем модуле, импортировав как NewsModule, так и AppModule и передать данные, которыеКстати, но я чувствую, что это нарушение модульности и хотел бы этого избежать.Есть ли лучшее решение для однонаправленного потока данных в модуль?

1 Ответ

1 голос
/ 19 марта 2019

Я думаю, что нет способа передать данные (если вы ленивая загрузка), кроме этих двух методов.

  1. Использование параметров запроса
  2. Имея общий сервис

Насколько я понимаю, модульность - это все о вашем дизайне. Если у вас есть много данных для передачи в ваш ленивый загрузочный модуль, то вам определенно следовало сломать ваш модуль не в том месте. При ленивой загрузке вы должны были передать минимальный объем информации таким образом, чтобы эту информацию можно было передать через некоторые параметры запроса.

Если у вас есть общая служба, да, это решение для преодоления вышеуказанной проблемы, но да, это также нарушает модульность, но это проблема проектирования. Использование отложенной загрузки на наиболее подходящем уровне делает дизайн идеальным и не создает проблем с модульностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...