Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度:如何使类属性(变量)保持常量,以便在组件重新加载时不会丢失数据_Angular_Oop_Rxjs - Fatal编程技术网

Angular 角度:如何使类属性(变量)保持常量,以便在组件重新加载时不会丢失数据

Angular 角度:如何使类属性(变量)保持常量,以便在组件重新加载时不会丢失数据,angular,oop,rxjs,Angular,Oop,Rxjs,因此,我要做的是将数据的Id保存在本地存储中,以便将其发送到另一个组件,因为当我转到另一个组件时,数据丢失,并且显示未定义。我也用rxjs试过了。我的问题是,当我的数据来自服务时,我希望将其保存在变量中,并使其在组件重新加载到ngonit时保持不变。因此,使用rxjs,我可以将这些数据发送到各个组件 export class AppComponent { title = 'promisefitness'; data:any; constructor(private _User

因此,我要做的是将数据的Id保存在本地存储中,以便将其发送到另一个组件,因为当我转到另一个组件时,数据丢失,并且显示未定义。我也用rxjs试过了。我的问题是,当我的数据来自服务时,我希望将其保存在变量中,并使其在组件重新加载到ngonit时保持不变。因此,使用rxjs,我可以将这些数据发送到各个组件

 export class AppComponent {
   title = 'promisefitness';
   data:any;
   constructor(private _UserService:UserService, private _RxJsService:RxjsService) {
      ngOnInit(): void {
      this._UserService.Login(UserData).subscribe(DataComingFromBackEnd=>{
      this.data=DataComingFromBackEnd._Id;
 })
 this._RxjsService.SendData(this.data);
   }

 }
现在,我已经在类中声明了数据,我希望数据应该永久存储来自后端的响应,即使组件重新加载。然后我可以使用Rxjs将这些数据发送到任何地方的另一个组件


请大家帮帮我。提前感谢

如果您想在需要使用的重新加载后保留数据,请记住它不会永久保留数据,并且存在某些限制,我建议您先阅读一下

话虽如此,有两个基本命令允许您使用
localStorage
,它们是:
localStorage.setItem()
localStorage.getItem()

下面是代码的一个修改版本:

导出类AppComponent实现OnInit{
标题=‘承诺适用’;
资料:有;
构造函数(private _UserService:UserService,private _RxJsService:RxJsService){}
ngOnInit():void{
this.data=this.getDataFromLocalStorage('myData');
如果(!this.data){
这是._UserService.Login(UserData).subscribe(DataComingFromBackEnd=>{
this.data=DataComingFromBackEnd.\u Id;
this.RxjsService.SendData(this.data);
this.saveDataToLocalStorage(this.data);
})
}否则{
this.RxjsService.SendData(this.data);
}
}
saveDataToLocalStorage(数据:任意):无效{
常量stringifiedData=JSON.stringify(数据)
setItem('myData',stringifiedData);
}
getDataFromLocalStorage(dataKey:string):任意{
const data=localStorage.getItem(dataKey);
const parsedData=JSON.parse(数据);
返回数据;
}

}
如果您想在需要使用的重新加载后保留数据,请记住它不会永久保留数据,并且存在某些限制,我建议您先阅读一下

话虽如此,有两个基本命令允许您使用
localStorage
,它们是:
localStorage.setItem()
localStorage.getItem()

下面是代码的一个修改版本:

导出类AppComponent实现OnInit{
标题=‘承诺适用’;
资料:有;
构造函数(private _UserService:UserService,private _RxJsService:RxJsService){}
ngOnInit():void{
this.data=this.getDataFromLocalStorage('myData');
如果(!this.data){
这是._UserService.Login(UserData).subscribe(DataComingFromBackEnd=>{
this.data=DataComingFromBackEnd.\u Id;
this.RxjsService.SendData(this.data);
this.saveDataToLocalStorage(this.data);
})
}否则{
this.RxjsService.SendData(this.data);
}
}
saveDataToLocalStorage(数据:任意):无效{
常量stringifiedData=JSON.stringify(数据)
setItem('myData',stringifiedData);
}
getDataFromLocalStorage(dataKey:string):任意{
const data=localStorage.getItem(dataKey);
const parsedData=JSON.parse(数据);
返回数据;
}

}
谢谢兄弟的帮助。但是除了本地存储,没有其他方法了吗?我觉得本地存储是不安全的。唯一的另一种方法是cookies,但是cookies有更大的大小限制,它适合保存原始数据。本地存储是不安全的,因为前端没有任何东西是安全的,根据经验,大多数安全问题都应该在后端单独解决。您的用例到底是什么?我关心的是在本地storgae上保存tokken或id是否会导致安全问题。但是应该有另一种方法,当数据来自后端时,我可以将其存储在一个变量中并使其保持不变,这样ngonit()变量就不会丢失其数据和值。兄弟,我使用的是restful API,这就是为什么它的无状态没有机会将状态(或数据或字符串)保存到后端的原因将其保存在本地存储上并不是一个安全问题,请提供帮助。但是除了本地存储,没有其他方法了吗?我觉得本地存储是不安全的。唯一的另一种方法是cookies,但是cookies有更大的大小限制,它适合保存原始数据。本地存储是不安全的,因为前端没有任何东西是安全的,根据经验,大多数安全问题都应该在后端单独解决。您的用例到底是什么?我关心的是在本地storgae上保存tokken或id是否会导致安全问题。但是应该有另一种方法,当数据来自后端时,我可以将其存储在一个变量中并使其保持不变,这样ngonit()变量就不会丢失其数据和值。兄弟,我使用的是restful API,这就是为什么它的无状态不可能保存状态(或后端的数据或字符串)将其保存在本地存储上不是一个安全问题