Angular 7, разные экземпляры сервиса в разных модулях? - PullRequest
1 голос
/ 30 апреля 2019

В приложении angular 7 у меня есть сервис (test.service) с декоратором @Injectable() (без предоставления In) , и он не предусмотрен в app.module, также у меня есть 2 разных модуля: client.module и core.module. Когда я добавляю test.service в обоих провайдерах модуля, а затем вставляю test.service в компонент клиента и в компонент ядра, я получаю 1 экземпляр test.service, но я ожидал 2.

Вопрос 1: почему это происходит?

Вопрос 2: Как я могу иметь разные экземпляры службы в разных модулях?

тестовый сервис:

import { Injectable } from '@angular/core'

@Injectable()
export class TestService {
  public bla = 1

  constructor() {
    console.log('Created')
  }

}

клиентский модуль:

@NgModule({
  declarations: [
    ClientComponent
  ],
  imports: [
    CommonModule
  ],
  providers: [TestService]
})

основной модуль:

    @NgModule({
      declarations: [
        coreComponent
      ],
      imports: [
        CommonModule
      ],
      providers: [TestService]
    })

Клиентский компонент:

export class ClientComponent implements OnInit {

   constructor(private ts: TestService) {}

}

Основной компонент:

export class ClientComponent implements OnInit {
   constructor(private ts: TestService)
}
...