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
ある へのルートがあります。ComponentC
ServiceA
<a routerLink="/path_to_component_c"></a>
の定義は次のComponentC
とおりです。
@Component({
providers = [],
})
export class ComponentC {
// accesses ServiceA.
}
がモジュール レベルのコンポーネントである場合、とServiceA
で共有しても問題はありません。これらは両方とも同じモジュール内にあるためです。しかし、直接注入されてしまったので、もうできません。毎回 1 つだけが作成され、 の後に作成されることに注意してください。ComponentB
ComponentC
ServiceA
ComponentB
ComponentC
ComponentC
ComponentB
ComponentB
と の間でデータを共有する方法はありComponentC
ますか? ありがとう!