如何在整个项目中使用 Angular 工厂数据

How to use Angular factory data throughout the project

我有一个 Angular js factory。成功登录后,我在其中存储用户信息。现在我有多个 controllers,我需要这个用户信息,所以我需要 inject 这个工厂到每个 controller。有什么方法可以在整个项目中访问此 factory 数据而无需注入每个控制器?

我们可以直接inject把它变成module吗?

用户信息可以存储在local storage或cookie中,这样我就可以在任何地方访问。

你也可以考虑使用$rootScope,那样你也需要注入你需要的所有模块。

工厂是模块的一部分。 将其注入到需要的控制器中,就是在整个模块中使用保存值的​​方式。

一些建议:

  • 在工厂中存储用户信息不是一个好方法,因为如果用户重新加载页面,它将重置工厂数据并且用户将不再存在。
  • 按照sajeetharan的建议,您可以使用HTML5localStoragesessionStorage来存储用户信息。因此,无需注入,您就可以轻松地随处访问存储的存储值。
  • 是的,如果您需要用户信息,那么您需要将工厂注入每个控制器,因为从一个控制器切换到另一个控制器时,您必须从 factory.If 中获取数据,然后注入工厂仅在主模块中,当您从成功登录移动到其他页面时,它不会加载工厂。