繁体   English   中英

angular 2+在路由中保存上下文

[英]angular 2+ save context in routing

有可能保存页面的上下文吗?

我会解释 :

我有一个包含组件的页面

/cars

该页面包含从$ http请求到服务器的汽车列表。

汽车1(点击查看详细信息)

汽车2(点击查看详细信息)

汽车3(点击查看详细信息)

汽车4(点击查看详细信息)

当我单击汽车时,我将重定向到新页面(所选汽车的详细信息)

/details/1 // 1 is the id of a car

如果我返回到汽车列表,该组件将再次发送$ http请求以获取汽车列表。

我的问题是,当我返回时是否有可能呈现先前的上下文而无需从服务器检索数据?

一种选择是使用服务来存储数据。

有什么更好的主意吗?

(Jira和GitLab正在使用此UX行为...)

谢谢 !

通常建议使用共享服务来执行此操作。

一种选择是将其缓存在发出HTTP请求的服务中,以便您的应用程序的结构保持不变,只有服务发生更改(发出请求一次,缓存结果,然后始终返回缓存的值) )。

如果在用户与应用交互时此数据可以更改,那么您将需要确定何时使缓存无效。

您可以将客户端数据保存在localstorage上

例如

localStorage.setItem('car', 'something');

它得到了广泛的支持。

确保对值进行字符串化:

localStorage.setItem(itemName, JSON.stringify(itemData));

您可以使用Angular2 @LocalStorage 它是一个小的Angular2 / typescript装饰器,使用HTML5'LocalStorage可以非常轻松地自动保存和恢复变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM