通过构造函数注入的角度缓存依赖关系?

时间:2019-04-24 13:46:31

标签: angular

我有一个非常奇怪的情况。

我有一个名为Test1的服务类,该服务类具有一个实例变量public account = new Subject();,然后将该类注入into 2 different components,但是那些组件是parent-child。现在,发生的事情是first的组件代码将某些内容更改为该实例变量(Test1's account)。事实证明,一旦发生此更改,就会订阅另一个组件,并且当发生更改时,就会发生订阅,这使我想到了以下问题。

问题1)服务类被注入2个组件中,假设它首先注入了compA,然后我认为在compB中,它是从缓存中注入的,并且两个组件都具有相同的类。

问题2)当注入构造函数时,角度缓存依赖吗?

问题3)谁的工作是缓存依赖项?是我们在模块中使用的提供者的对象吗?

1 个答案:

答案 0 :(得分:1)

  1. 这两个组件将具有相同的Instance,具体取决于提供服务的级别。您可以在模块和组件中提供服务。如果在两个组件都位于其中且没有其他位置的模块中提供该组件,则两者将具有相同的实例。如果只是在父组件中提供,则它们将再次具有相同的实例。如果两个组件中都提供了它,那么将有不同的实例。
  2. 不,我们提供时就这样做。 (使用cache这个词对我来说似乎不正确,是的。)
  3. 是的,当我们提供时,多数民众赞成当角度将创建单身人士。