0

ServiceA独自の状態 (インスタンス変数など) を持つサービスがあり、モジュールには service の複数のインスタンスがありますServiceA

@Injectable()
export class ServiceA { 
  // It defines instance variables.
}

のインスタンスを複数持つ必要があるためServiceA、モジュール レベルのコンポーネントにすることはできません。

ComponentBインスタンスをインスタンス化し、そのServiceA状態を変更する可能性があります:

@Component({
  providers = [ServiceA],
})
export class ComponentB {
  // changes the state of ServiceA.
}

また、 の HTML テンプレートには、同じインスタンスにアクセスする必要がComponentBある へのルートがあります。ComponentCServiceA

<a routerLink="/path_to_component_c"></a>

の定義は次のComponentCとおりです。

@Component({
  providers = [],
})
export class ComponentC {
  // accesses ServiceA.
}

がモジュール レベルのコンポーネントである場合、とServiceAで共有しても問題はありません。これらは両方とも同じモジュール内にあるためです。しかし、直接注入されてしまったので、もうできません。毎回 1 つだけが作成され、 の後に作成されることに注意してください。ComponentBComponentCServiceAComponentBComponentCComponentCComponentB

ComponentBと の間でデータを共有する方法はありComponentCますか? ありがとう!

4

1 に答える 1