如何在整个项目中使用 Angular 工厂数据
How to use Angular factory data throughout the project
我有一个 Angular js factory
。成功登录后,我在其中存储用户信息。现在我有多个 controllers
,我需要这个用户信息,所以我需要 inject
这个工厂到每个 controller
。有什么方法可以在整个项目中访问此 factory
数据而无需注入每个控制器?
我们可以直接inject
把它变成module
吗?
用户信息可以存储在local storage
或cookie中,这样我就可以在任何地方访问。
你也可以考虑使用$rootScope
,那样你也需要注入你需要的所有模块。
工厂是模块的一部分。
将其注入到需要的控制器中,就是在整个模块中使用保存值的方式。
一些建议:
- 在工厂中存储用户信息不是一个好方法,因为如果用户重新加载页面,它将重置工厂数据并且用户将不再存在。
- 按照sajeetharan的建议,您可以使用HTML5
localStorage
或sessionStorage
来存储用户信息。因此,无需注入,您就可以轻松地随处访问存储的存储值。
- 是的,如果您需要用户信息,那么您需要将工厂注入每个控制器,因为从一个控制器切换到另一个控制器时,您必须从 factory.If 中获取数据,然后注入工厂仅在主模块中,当您从成功登录移动到其他页面时,它不会加载工厂。
我有一个 Angular js factory
。成功登录后,我在其中存储用户信息。现在我有多个 controllers
,我需要这个用户信息,所以我需要 inject
这个工厂到每个 controller
。有什么方法可以在整个项目中访问此 factory
数据而无需注入每个控制器?
我们可以直接inject
把它变成module
吗?
用户信息可以存储在local storage
或cookie中,这样我就可以在任何地方访问。
你也可以考虑使用$rootScope
,那样你也需要注入你需要的所有模块。
工厂是模块的一部分。 将其注入到需要的控制器中,就是在整个模块中使用保存值的方式。
一些建议:
- 在工厂中存储用户信息不是一个好方法,因为如果用户重新加载页面,它将重置工厂数据并且用户将不再存在。
- 按照sajeetharan的建议,您可以使用HTML5
localStorage
或sessionStorage
来存储用户信息。因此,无需注入,您就可以轻松地随处访问存储的存储值。 - 是的,如果您需要用户信息,那么您需要将工厂注入每个控制器,因为从一个控制器切换到另一个控制器时,您必须从 factory.If 中获取数据,然后注入工厂仅在主模块中,当您从成功登录移动到其他页面时,它不会加载工厂。