[英]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
?
我看到两个解决方案:
将选择状态保持在服务中。 使用“ DETAILS
视图URL打开应用程序时,控制器会在服务中设置所选项目,并从URL中获取这些项目。
使用与从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.