有没有办法在不使用$ cookies的情况下在AngularJs中的两个网页之间共享一个对象

时间:2015-04-15 11:56:21

标签: angularjs cookies

在AngularJs中,有没有办法在不使用$ cookies的情况下在两个网页之间共享对象。例如,我的登录页面控制器具有不同的angular.module,而我的其他控制器具有不同的angular.module,但我需要在登录页面和另一页面之间共享凭据而不使用$ cookies。

3 个答案:

答案 0 :(得分:3)

在独立页面之间

您可以使用standard HTML5 sessionStorage和localStorage对象

  

对于简单的同步存储访问,HTML 5在Window对象上引入了localStorage属性:   localStorage [“status”] =“空闲。”;

LocalStorage就像cookie一样,关闭浏览器时sessionStorage会很干净。

角度

您可以使用技术上是单身的工厂。但是如果刷新页面,所有JS都将重新初始化,您将丢失数据。服务也是可能的。

以下是解释服务与工厂之间差异的其他主题的链接:AngularJS: Service vs provider vs factory

要创建服务/工厂,请查看Angular official documentation,这是很好的解释。

完美混合

您需要做的是创建一个服务,并在每次修改时将其字符串化以存储在本地/会话存储上。在加载时,当angular创建您的服务时,您会在存储中查找初始化值并返回对象。

这对于例如身份验证来说非常常见。您存储令牌以在刷新时保持身份验证;)。如果有任何困难,请告诉我。

答案 1 :(得分:1)

您是否考虑过创建存储这些登录凭据的服务?然后,您可以使用依赖注入在两个控制器中使用此服务。

答案 2 :(得分:0)

在不同页面之间共享信息是一项关键任务,可以在控制器的帮助下完成。

在AngularJS中,我们可以通过三种方式在控制器之间共享数据:

Factory:在工厂内创建对象并将其返回。 服务:使用该服务,您只需要一个使用this关键字定义函数的标准函数。 提供者:使用提供者,你可以定义一个$ get,它可以用来获取返回数据的对象。

相关问题