控制器和支持路由之间的角度保持选择

Angular keep selection between controllers and support routing

本文关键字:选择 支持 路由 之间 控制器      更新时间:2023-09-26

我有一个显示一组项的LIST视图。在此视图中,用户可以选择项目。

然后我有一个DETAILS视图,它显示了有关所选项目的详细信息。

应用程序从LIST视图移动到DETAILS视图以更改位置。所选项目作为URL参数传递(例如/cars/id=1,2,3)。

将id放在URL中可以让用户将DETAILS视图的URL添加书签,并在再次打开添加书签的URL时查看元素。

DETAILS视图有一个后退按钮,用户可以返回到LIST视图。当用户返回到LIST视图时,我希望以前选择的元素显示为已选择。

如何将所选项目从DETAILS传递回LIST

我看到两个解决方案:

  1. 保持服务中的选择状态。当使用DETAILS视图URL打开应用程序时,控制器在服务中设置从URL获取的所选项目。

  2. 使用与从LIST移动到DETAILS相同的机制:将所选项目作为参数放入URL中。然后LIST控制器从URL中检索它。

哪种解决方案更好?

首先,我认为您的两种解决方案都可能有效。

1) 对用户进行页面重新加载敏感

2) 一般来说是好的,但要注意如果url 中的数据量增加

归根结底,这更关乎品味。。

是否希望用户将具有选定ID的列表页作为书签?如果没有,那么我想介绍第三种可能的解决方案

var parameters = [ id1, id2, id3 ];
// set in detail view
localStorage.setItem('params',JSON.stringify(parameters)); 
// to retrieve in list view
var selectedParameters = JSON.parse(localStorage.getItem('params'))

这样你就不必担心用户会刷新页面。。

祝你好运。。