繁体   English   中英

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

[英]Angular keep selection between controllers and support routing

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

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

该应用程序从LIST视图移动到DETAILS视图,更改了位置。 所选项目作为URL参数传递(例如/ cars / ids = 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)一般来说很好,但是要注意网址中的数据量是否增加

归根结底,这是更多的口味问题。

您是否要用户将具有选定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'))

这样,您不必担心用户确实会刷新页面。

祝你好运

暂无
暂无

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

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