[英]Posting to a REST interface
需要在URL中將名稱定義為ID,並且需要發布包含數據的對象。
$ scope.dvModel.naam是充當ID的名稱。 顯然,filteredObject是包含數據的對象。
根據一些示例,這就是我所說的服務,看起來還可以。
saveDVservice.query($scope.dvModel.naam, filteredObject);
這是實際的服務。
.factory('saveDVservice', ['$resource', 'CONSTANTS', function($resource, CONSTANTS) {
'use strict';
return $resource(CONSTANTS.REST_BASE_URL + '/dv/:name', {}, { query: { method: 'POST', isArray: false, headers: { 'Content-Type': 'application/json' }}});
}]);
這是我在網絡選項卡的查詢字符串參數中看到的內容:0:A 1:D 10:n 11:h 12:i 13:l 14:f 15:e 2:A 3:C 4:5:P 6 :a 7:n 8:n 9:e
這是名稱,但看起來像一個數組。
請求有效負載包含正確順序的實際對象。 可以給我一些如何處理的指導嗎?
據我了解,您想將$scope.dvModel.naam
放入URL中,並且希望filteredObject
成為請求有效負載。 然后,您需要一個對象,該對象包含鍵name
filteredObject
和$scope.dvModel.naam
中所有內容,該值等於$scope.dvModel.naam
。
另外,您的資源的定義可能應該更改-在第二個參數$resource
您需要告訴它從給定對象中提取URL數據的方式:
$resource(CONSTANTS.REST_BASE_URL + '/dv/:name', {name: '@name'}, { query: { method: 'POST', isArray: false, headers: { 'Content-Type': 'application/json' }}});
不幸的是,當您的有效載荷數據與URL數據分開時, $resource
並不是最好的$http
包裝器。 也許將filteredObject
數據包裝在有效載荷中的其他對象中會更好嗎? 然后,您的$resource
對象會更好,例如{name: ..., data: {"0": "A", "1": "D", ...}}
由於query
默認操作是{method: 'GET', isArray: true}
,所以我將其保留為其他默認值,而是save
。 這應該開箱即用。
app.factory('DVService', function ($resource) {
return $resource(CONSTANTS.REST_BASE_URL + '/dv', {name: '@name'}, {});
});
。
app.controller('MainCtrl', function ($scope, DVService) {
var postData = {
name: 'name',
fooProp: 'foo',
barProp: 'bar'
};
// save/post
DVservice.save({dv: postData}).$promise.then(function (response) {
console.log(response);
});
//query/get
DVService.query({name: 'name'}).$promise.then(function (response) {
console.log(response);
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.