2015-02-24 19 views
1

我angular.js應用的帖子下面的JSON我的後端API:AngularJS:在數組符號POST參數

{"pickupAddress": 
       {"state":"d","country":"d","city":"d","zipCode":"d","street":"d"}, 
...}` 

取而代之的是需要我的後端API接收不pickupAddress.state,但pickupAddress[state]

我試圖改變在我看來ng-model(到myObject.pickupAddress['country']),但這會產生一些奇怪的錯誤。

我想要的東西,導致這種(使用原始的HTML):

<input type="text" name="pickupAddress[state]" />

+1

目前還不清楚你的意思是...你想發送不同的JSON到後端API還是其他問題? – aarosil 2015-02-24 17:21:03

+0

我希望Angular使用數組符號。對於原始HTML,這將像'' – mosquito87 2015-02-25 16:00:00

+0

您是否在項目中使用jQuery? – dfsq 2015-02-25 16:09:40

回答

0

的角度序列化方式POST數據,如果你提供了一個對象源實際上是採用沒有符號的服務期望。相反,如果你使用jQuery $ .PARAM方法序列化對象到PARAM串並張貼此字符串,它應該工作:

var data = $.param({ 
    "pickupAddress": { 
     "state": "d", 
     "country": "d", 
     "city": "d", 
     "zipCode": "d", 
     "street": "d" 
    } 
}); 

$http.post('test', data, { 
    headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
}); 

上面會發布數據

pickupAddress[state]:d 
pickupAddress[country]:d 
pickupAddress[city]:d 
pickupAddress[zipCode]:d 
pickupAddress[street]:d 

的角度問題,檢查這個discussion頁。

+0

謝謝。尤其是指向http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/的討論頁面中的鏈接非常有幫助。這是我正在使用的解決方案。 – mosquito87 2015-02-28 16:39:33