代码之家  ›  专栏  ›  技术社区  ›  J.TrLu

如何在AngularJS的ui路由器中传递查询参数?

  •  0
  • J.TrLu  · 技术社区  · 7 年前

    我是AngularJS的新手,现在还在学习。我有一个任务,需要在$stateparam中捕获查询参数。这可能吗?

    URL as follow:  https://..../details?param1=abc&param2=10
    
    In my ui route, I have this:
            $stateProvider.state('order', {
            url : '/order',
            views : {
                "mainContent" : {
                    templateUrl : 'order.html'
                }
            },
            params: {
                orderId: <how can I capture param1 value here?>,
                orderQuantity: <how can I capture param2 value here?>
            }
        });
    

    如果没有,我可以用什么其他方式将查询参数指定为$stateparam?如果我在这里指定参数,这很容易实现

    url : '/order/:param1/:param2'
    

    但这也意味着我的URL将是这样的,我不希望这样

    https://..../details?param1=abc&param2=10#!/order/abc/10
    

    顺便说一下,它们需要传递$stateparam,因为它们是下游所必需的,我无法修改代码。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Ihor Yanovchyk    7 年前

    使用 ? 在您的 url

    $stateProvider.state('order', {
         url : '/order?:orderId&:orderQuantity',
         views : {
            "mainContent" : {
               templateUrl : 'order.html'
             }
         }
    

    Url将为 https://..../details?orderId=123&orderQuantity=10