【发布时间】:2013-12-20 15:25:21
【问题描述】:
我有一个用 AngularJS(版本 1.0.8)编写的 Web 应用程序。 我正在使用 UI-Router (0.4.) 来处理该应用程序的状态。
我尝试从另一个 Flex 应用 (4.0) 访问该应用的 URL。
在 Angular 应用程序中,我有 URL:
http://localhost:8080/myApp/somePage?param01=aaa¶m02=bbb
在该应用程序的 Angular 的 module.config() 中,我做了这样的事情:
$stateProvider.state("somePage", {
url: "/somePage?param01¶m02"
templateUrl: "view/somePage.html"
controller: "SomePageController"
});
现在在 Flex 应用程序中,我有以下代码:
var variables:URLVariables = new URLVariables();
variables.param01 = "aaa";
variables.param02 = "bbb";
var url = new URLRequest();
url.data = variables;
navigateToURL(url, "_self");
问题是,当我按下导航到 Angular 应用程序的 Flex 应用程序中的按钮时,我得到了这个 URL:
http://localhost:8080/myApp/somePage?param02=bbb¶m01=aaa
在 URL 的查询参数中,param02 位于 param01 之前。 然后,在 Angular 的 ui-router 中,我猜是改成常规的 URL:
http://localhost:8080/myApp/somePage?param01=aaa¶m02=bbb
我的问题在于浏览器导航 - 当用户单击“返回”时,浏览器不会导航回 Flex 应用程序的 URL,因为历史记录中有另一个 URL,查询参数已在其中切换.用户必须点击“返回”两次...
此外,尽管这不是问题所必需的详细说明,因此您可以根据需要跳过它,但用户可以从多个位置访问该 Angular 应用程序(即不仅可以从 Flex 应用程序)。当用户在 Angular 应用程序中单击“保存”或“取消”时,它应该被重定向到原始页面。我打算使用 history.back() 功能来做这件事,但是由于上述现象,在查询参数切换的 URL 中存在问题。
提前非常感谢, 丹尼尔
【问题讨论】:
标签: angular-ui query-parameters