Angularjs 如何在angular 2应用程序中保存全局可见用户?

Angularjs 如何在angular 2应用程序中保存全局可见用户?,angularjs,angular,typescript,rxjs,ngrx,Angularjs,Angular,Typescript,Rxjs,Ngrx,登录后我得到一个用户 private login() { let data = { "UserName": "admin" , "Password": "+" }; this.apiService.doLogin(data).subscribe( (res) => this.userService.set('user', res), (err) => console.log(err) ) } 如何实现这个用户服务? *我想在

登录后我得到一个用户

  private login() {
    let data = { "UserName": "admin" , "Password": "+" };

    this.apiService.doLogin(data).subscribe(
      (res) => this.userService.set('user', res),
      (err) => console.log(err)
    )
  }
如何实现这个用户服务? *我想在没有新呼叫的情况下获取一些用户数据到后端?
**我知道,也许有人知道更好的解决办法

可以使用HTML5localSorage,但对于Angular2,ngrx/store更好。它还提供状态管理,因此建议您使用它。

如果您想存储记录的用户详细信息,您可以通过几种方式来实现

Redux商店(ngrx):

您可以使用ngrx商店概念-。当您从后端获取用户模型时,您只需发送一个操作来加载数据

优势:

  • 您可以在应用程序的所有部分、每个组件中订阅您的用户存储,这样您就可以对每次更改做出正确的反应
  • 存储中的用户模型是不可变的——要更改任何内容,您必须调度一个操作,该操作调用纯reducer函数,因此不可能意外地修改任何用户数据
服务:

此外,还可以将用户模型对象作为私有变量存储在服务中

缺点:

  • 在Angular 2中,服务可以是全局的或模块范围的。这是什么意思?如果您将您的用户服务添加到全局模块提供程序数组中,并且由于错误(也作为您的功能模块提供程序),angular 2将创建两个服务实例,因此其中一个实例将具有空用户。类似的问题你可以在那里找到-

我不知道你在问什么。如果要将其存储在内存中,只需使用
this.userService.user=res.json()
。如果您想持久化它(即,如果刷新页面,就可以找到它),您可以将它存储在cookie或LocalStorage中。