Angular $ http获取参数转换

时间:2015-03-05 09:22:43

标签: json angularjs

当我有这种对象时:

myObj = {
    accountNumber:"12345",
    limit:"10",
    offset:"0",
    serviceProduced: {
        min:"2015-03-01"
    }
}

我通过$ http获取传递给params:

$http({
    url: '/foo'
    method: 'GET'
    params: myObj
});

出于某种原因,在$http

的JSONified之后,它会像这样来到服务器
{"accountNumber":"1191009461","limit":"10","offset":"0","serviceProduced":"{\"min\":\"2015-03-01\"}"}

如何阻止' serviceProduced'不要转换为字符串?所以它就像这样(正确):

{"accountNumber":"1191009461","limit":"10","offset":"0","serviceProduced":{"min":"2015-03-01"}}

2 个答案:

答案 0 :(得分:0)

我认为你错过了使用http get。它不应该支持嵌套对象。 它应采用以下格式:?accountNumber=1191009461&limit=10&...

但是,如果您想要实现所需的目标,可以将对象配置为:

myObj = {
    accountNumber:"12345",
    limit:"10",
    offset:"0",
    "serviceProduced.min": "2015-03-01", // you should be able to handle this format server side.
    // OR
    "serviceProduced[min]": "2015-03-01"
}

答案 1 :(得分:0)

尝试:

$http.get("#{url}", myObj)...

它应该有用。