在AngularJS中重置/清除服务数据

时间:2016-07-13 21:34:23

标签: angularjs angular-services

清除AngularJS的服务数据的最佳做法是什么?例如,如果user1注销并且user2在同一浏览器上重新登录,如果我没有清除服务数据,则user2将使用与user1相同的服务数据。

例如,在下面的代码中,如果user1向服务添加了更多用户并注销,并且在同一浏览器中,如果user2重新登录,则他们将能够看到添加了所有用户user1。

var module = angular.module('myapp', []);

module.service('userService', function(){
    var users = ['John', 'James', 'Jake'];
});

我有两个解决方案来解决这个问题,但没有一个是理想的。

  1. 手动重置服务中的每个属性。这似乎不是一个理想的解决方案,因为有一天有人可能会忘记这样做。
  2. 注销时重新加载窗口。似乎重置了服务,但用户体验有点差。
  3. 有更好的选择吗?

1 个答案:

答案 0 :(得分:1)

注销时:

window.location.href = "yourloginurl";

如果注销不像SPA的其他部分那样顺畅,那就无所谓了。