我正在努力习惯$ resource及其所有的荣耀,我无法设法做一个简单的帖子。
使用$ http对我来说很简单。
我可以这样做一个POST:
$http.post("authorize/claim", collection).success(function() {
将集合作为原始对象或数组发送为PAYLOAD。
或者像这样:
$http.post("authorize/claim?claimItem="+collection).success(function() {
将集合作为查询字符串发送。
现在,当我尝试使用$ resource执行简单的帖子时,数据总是作为查询字符串发送。如何将其作为数组或对象发送?
这就是我在做的事情。
var authoClaims = $resource('authorize/claim');
authoClaims.save(collection);
答案 0 :(得分:4)
试试这个:
的index.html
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-resource.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<div ng-controller="AuthorizeController">
<form name="authorizeForm" novalidate>
<label>Login</label>
<input type="text" name="login" ng-model="authorizeClaim.login">
<br/>
<label>Code</label>
<input type="text" name="code" ng-model="authorizeClaim.code">
<br/>
<button ng-click="doAuthorizeClaim()">Authorize claim</button>
</form>
</div>
</body>
</html>
的script.js
var myApp = angular.module('myApp', ['ngResource', 'myAppServices']);
myApp.controller('AuthorizeController', ['$scope', 'Authorize',
function($scope, Authorize) {
$scope.doAuthorizeClaim = function() {
Authorize.save($scope.authorizeClaim, function() {
alert('Authorize claim saved');
});
};
}
]);
var myAppServices = angular.module('myAppServices', ['ngResource']);
myAppServices.factory('Authorize', ['$resource',
function($resource) {
return $resource('/api/authClaims', {}, {});
}
]);
如果您运行此示例,您可以在Network(Developer Tools / Firebug)上看到类似这样的内容:
Request URL: http://run.plnkr.co/api/authClaims
Request Method: POST
Status Code: 404 Not Found
Request Payloadview source
{login:test1, code:code1}
所以方法POST工作。