此问题与Angular uiRouter open state in new window or tab with stateParams类似,但唯一的答案似乎不起作用。
我显示一个网格,用户最多可以选择1000行。有一个打印按钮,它应该打开浏览器中的新标签,这些行以可打印的格式显示。
在我的控制器中,我在服务中设置这些行(文章),然后打开新窗口:
articlesService.setArticles(selected);
$window.open($state.href('newwindow', {}, {absolute: true}), '_blank');
这会打开新标签页,但我的服务中的数据会丢失。我真的应该使用新标签。我正在考虑将数据存储在cookie中,但由于我可能有超过1000行,所以这不是一个选项。我也没有在网址中传递任何内容,因为用户可以选择他想要的任何内容。
有没有办法实现这个功能?
答案 0 :(得分:1)
您需要使用ngStorage存储数据:
http://ngmodules.org/modules/ngStorage
此模块使您可以在浏览器中存储数据,并从不同的选项卡甚至跨会话使用它;它以适当的Angular方式提供对浏览器本地存储的访问。本地存储是持久性(密钥,值)元组存储机制。