AngularJS SPA应用程序,“清理”URL

时间:2016-03-02 13:49:07

标签: javascript angularjs

这是我上一篇文章(angular javascript cleaning URL)的第二个更详细的问题,我认为我找到了解决方案,但没有。

我有一个使用AngularJS构建的SPA应用程序。通常,用户将登录站点并执行各种活动,每个活动由特定子页面(和控制器)管理。

当用户登录应用程序时,将从远程数据库中提取信息并将其添加到$rootScope对象中。这些信息可以被各种页面使用(因此可以在全球范围内使用)。

用户还可以使用参数接收指向应用程序的链接,例如:http://www.example.com?action=fillform&formid=234lkhjwefj234lofjwodjfw3e

当点击链接时,应用程序会检查URL中是否有参数,如果是,则弹出一个模式,显示与要填写的表单相关的一些信息,并提供登录系统(如果访问者已经有帐户)或注册。我们假设用户有一个帐户。

当用户选择登录应用程序时,模式处理登录过程,然后需要应用程序移动到适用的子页面。这是问题的开始......

我最初使用的是javascript命令:

$window.location.href = "#fill_form?ID=234lkhjwefj234lofjwodjfw3e

它正确地将我带到了页面和特定表单,但使浏览器地址栏中显示的URL为:http://www.example.com?action=fillform&formid=234lkhjwefj234lofjwodjfw3e#/fill_form?ID=234lkhjwefj234lofjwodjfw3e

此外,任何其他重定向仍会包含网址的第一部分(即http://www.example.com?action=fillform&formid=234lkhjwefj234lofjwodjfw3e)。

除了丑陋之外,当用户点击页面中的其他链接时(通常会将用户带到不同的子页面),它会导致问题。

然后,我尝试使用命令:

$window.location.href = location.protocol + "//" + location.host + "/index.html#/fill_form?ID=" + l_ID ;

(其中l_ID包含234lkhjwefj234lofjwodjfw3e)。

这删除了通过链接接收的部分参数,但显然,它完全刷新了应用程序上下文,因为从数据库中检索到的与用户相关的信息不再可用。

因此,我需要一种能够遍历子页面的方法,同时删除初始链接的参数并保留在初始步骤/会话中检索到的信息。

任何建议都将受到高度赞赏。

0 个答案:

没有答案
相关问题