我想從AngularJS將數組傳遞給我們的API。但是,當發送時,參數會重複發送,而不是作爲數組發送。這裏是我的代碼:
angular.module('sigApp.services', ['ngResource']).
// Fetch cases from server
service('caseFetcher', ['$resource', function($resource) {
this.getCases = function(params) {
console.log('params: ',params);
return $resource('/v1/cases/', params);
};
}]);
這裏是產生(略)的網址:?/ V1 /件狀態= OPEN &狀態=舉行
這是我想要的網址:/ V1 /件?狀態%5B0%5D = OPEN &狀態%5B1%5D = HELD(?又名狀態[0] = OPEN &狀態1 = HELD)
下面是對於在上面的代碼中記錄的對象的屏幕截圖:
我試過了最新版本的angularjs(1.2rc1),並試過了Restangular插件。無論我嘗試什麼,我都會獲得多次傳遞的參數,而不是數組格式。我們的API無法使用同一個密鑰使用多個值。
任何想法?
編輯:當其他問題(AngularJS: ngResource and array of object as params to URL)完全不是這樣的時候,有幾個人已經標記爲重複。另一個問題涉及通過POST發送一個數組,我試圖做一個GET請求(設置爲isArray:默認爲true),我想只傳遞一個數組作爲參數,這個答案似乎並不幫我。那麼有人可以幫助這個嗎?
更新我在下面回答了我自己的問題,但作爲評論,我給任何遇到此問題的人提供更多信息。我們在後端使用Play Framework 2.1。我無法生成最初在上面發佈的編號數組,但是能夠使其僅用於非索引數組,因此這是最終生成的URL:
/v1/cases?status %5B%5D = OPEN &狀態%5B%5D =舉行(又名?狀態[] = OPEN &狀態[] =持有)
希望這有助於別人
這將是更好,如果你也與您正在使用,以便它可以幫助其他用戶服務器端框架標記它。在答案中添加生成的url也是有幫助的。我相信這不會是你最初想要的問題。 – rubish