如何使用 angular 传递嵌套参数

How to pass nested parameters using angular

我正在尝试使用 angular 向我的 rails 后端发送获取请求。所以我要找的是这样的请求

Parameters: {"location"=>"london", "q"=>{"price_gteq":"33333", "price_lteq":"7777"}}

所以在我的 app.js 中,我尝试使用以下代码发送带有参数的请求。我现在变得出乎意料 /,第二个嵌套参数没有显示,如下所示。

  $http({
        url: "/search.json",
        method: "GET",
        params: {location: $scope.searchLocation, q: {price_gteq: $scope.min_price, price_lteq: $scope.max_price} }
    })

这是我像上面那样尝试时得到的结果

Parameters: {"location"=>"london", "q"=>"{\"price_gteq\":\"33333\"}"}

有人能告诉我这里做错了什么吗??

默认情况下 angular 使用 $httpParamSerializer which actually can handle nested parameters. Check if your $http uses this service. If for some reason it doesn't work, you can write own paramSerializer and pass it into $http configuration object

同时在您发送请求时检查 price_lteq 是否存在。