Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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 角度4+;~加载具有最后状态的组件_Angular_Storage_Angular5 - Fatal编程技术网

Angular 角度4+;~加载具有最后状态的组件

Angular 角度4+;~加载具有最后状态的组件,angular,storage,angular5,Angular,Storage,Angular5,我是angular的初学者,因此我需要一些帮助: 我有A页和B页。PageA有a:number、b:string、c:OwnType等变量。。。用户更改了这些变量的某些值。然后他会被一个指向PageB的链接重定向。他意识到自己错过了PageA上的某些内容,因此他将按下浏览器的“返回状态”按钮。不幸的是,他对属性的更改丢失了,所以他需要从一开始就重新开始PageA的工作 如果只设置了一次,如何让PageA将修改后的值保存在destroy上并从某个地方加载到init上? 我可以为此使用本地/会话存储

我是angular的初学者,因此我需要一些帮助: 我有A页和B页。PageA有a:number、b:string、c:OwnType等变量。。。用户更改了这些变量的某些值。然后他会被一个指向PageB的链接重定向。他意识到自己错过了PageA上的某些内容,因此他将按下浏览器的“返回状态”按钮。不幸的是,他对属性的更改丢失了,所以他需要从一开始就重新开始PageA的工作

如果只设置了一次,如何让PageA将修改后的值保存在destroy上并从某个地方加载到init上?

我可以为此使用本地/会话存储或服务。另一方面,我想知道是否有比这些更好的解决方案。 感谢您的时间和回答:)


(我不想在服务器上存储类似状态的内容)

您可以使用服务来存储值,并在需要时进行检索。您可能已经知道,服务本质上是单例的。因此,您可以将它们用作缓存,并在需要时有效地使用它们。下面显示了一个示例(不是经过测试的代码)

//组成部分

ngOnInit() {
let values = this.someService.getValues();
if(values) {
this.classPropertyA = values.a;
}
...
}

ngOnDestroy() {
this.someService.setValues(value1,value2); //Whatever values you want to store
}

但这可能无法处理重新加载条件。为此,您可能必须使用本地存储或其他一些存储方法。希望这能有所帮助。

如果您想了解不同的概念,请使用redux模式。我建议你看看@ngrx:不清楚链接重定向意味着什么。这个问题没有包含足够的细节来提供一个好的答案。如果您使用的是路由器,路由组件的生命周期由RouterUseStrategy provider控制。