Внедрение зависимостей Angular Service в один и тот же компонент с разных маршрутов

#angular

#angular

Вопрос:

У меня есть два модуля, как показано ниже. Я хочу поделиться компонентом из первого модуля во втором модуле, но с параметрами, указывающими, из какого модуля он поступает. Как я могу это сделать с помощью сервиса?

Первый модуль

 @NgModule( {
declarations: [
    MasterListComponent
              ]
 

Во втором модуле я могу легко использовать компонент, как показано ниже

 const routes: Routes = [
{
    path: '',
    pathMatch: 'full',
    redirectTo: 'list'
}, {
    path: 'list',
    data: { title: 'Administration' },
    component: MasterListComponent
}];
 

Но в конструкторе MasterListComponent как я могу внедрить службу, чтобы узнать, откуда был вызван компонент?

Комментарии:

1. Почему вы не используете data свойство, как вы уже делали? data: { module: "NAME_OF_YOUR_MODULE" }

2. Как вы используете свойство data в компоненте?

Ответ №1:

Вы можете добавить свойство непосредственно в свой модуль следующим образом :

 {
    path: 'list',
    data: {
      title: 'Administration',
      module: 'Your module',
    },
    component: MasterListComponent
}
 

Затем в вашем компоненте просто сделайте это :

 constructor(private route: ActivatedRoute) {}

ngOnInit(): void {
  console.log(this.route.snapshot.data.module);
}