【问题标题】:Query parameters order in AngularJS URL accessed from Flex从 Flex 访问的 AngularJS URL 中的查询参数顺序
【发布时间】: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&param02=bbb

在该应用程序的 Angular 的 module.config() 中,我做了这样的事情:

$stateProvider.state("somePage", {
    url: "/somePage?param01&param02"
    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&param01=aaa

在 URL 的查询参数中,param02 位于 param01 之前。 然后,在 Angular 的 ui-router 中,我猜是改成常规的 URL:

http://localhost:8080/myApp/somePage?param01=aaa&param02=bbb

我的问题在于浏览器导航 - 当用户单击“返回”时,浏览器不会导航回 Flex 应用程序的 URL,因为历史记录中有另一个 URL,查询参数已在其中切换.用户必须点击“返回”两次...

此外,尽管这不是问题所必需的详细说明,因此您可以根据需要跳过它,但用户可以从多个位置访问该 Angular 应用程序(即不仅可以从 Flex 应用程序)。当用户在 Angular 应用程序中单击“保存”或“取消”时,它应该被重定向到原始页面。我打算使用 history.back() 功能来做这件事,但是由于上述现象,在查询参数切换的 URL 中存在问题。

提前非常感谢, 丹尼尔

【问题讨论】:

    标签: angular-ui query-parameters


    【解决方案1】:

    我解决了我自己的问题,目前通过改变我在 Flex 中使用 navigateToURL 的方式。

    我现在有这样的东西:

    var queryParams:String = "param01=aaa&param02=bbb";
    url.url += "?" + queryParams;
    navigateToURL(url, "_self");
    

    这样,当我使用自己构建的字符串时,而不是 URLVariables 类,我可以控制 URL 查询参数的顺序。

    不幸的是,当我使用 URLVariables 类时,我仍然不知道为什么每次使用该函数时 URL 查询参数的顺序都不同...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 2017-05-10
      • 1970-01-01
      • 2013-06-26
      • 2017-01-10
      • 1970-01-01
      • 2021-01-16
      相关资源
      最近更新 更多