打开新窗口时初始化角度变量

Posted

技术标签:

【中文标题】打开新窗口时初始化角度变量【英文标题】:Initialize angular variable on opening a new window 【发布时间】:2017-09-05 00:09:59 【问题描述】:

我有一个包含 2 组不同数据的页面(我的意思是我在页面上有一个复选框,当复选框被选中时它将显示 User1 的详细信息,否则它将显示 User2 的详细信息)。我正在使用 AngularJS 绑定复选框值。

我的要求是,我应该有一个按钮,可以在新窗口中打开同一页面,但设置不同(在这种情况下选中复选框)。我将如何实现这一目标?

以下是我的想法,我们可以使用以下内容打开新窗口并添加一个隐藏的变量来启用或禁用复选框。

var myWindow = window.open("Page_URL");

我很确定以上不是最佳解决方案,有人可以为我的要求提供一个好的解决方案吗?

【问题讨论】:

angular 用于 SPA = 单页应用程序,因此您基本上将其扔出窗口,其次您可以使用 localstorage/sessionstorage 保存页面之间的数据 【参考方案1】:

您可以在 url 本身中传递值。请在下面找到各种方式,

    使用查询参数

"Page_URL/?value="+checkBoxValue 例如:localhost:8080/project/home?value=checked

    使用 $stateprovider 或 $routeProvider

$routeProvider.when('/home/:value', 模板:'home.html', 控制器:'homeController' );

然后从控制器,你可以将值传递给 url

$location.path('home/'+checkboxValue)

注意:基本上我们需要避免使用 localstorage/sessionStorage 根据最佳做法。

【讨论】:

谢谢。基本上我使用asp.net mvc进行路由,我会按照你的想法在asp.net中实现。

以上是关于打开新窗口时初始化角度变量的主要内容,如果未能解决你的问题,请参考以下文章

Java登录窗口关闭 打开新窗口

用js window.open在新窗口中打开链接,关于设置URL地址设置为变量的问题

将变量从 MainWindow 传递到新窗口

如何防止为远程 ssh 连接启动新的 VS Code 窗口

单击时在新窗口中打印图像的最简单方法是啥?

打开新标签页/新窗口时自动打开 Chrome 开发者工具