在angularjs中使用$ resource $ save进行简单的POST

时间:2013-11-21 21:26:29

标签: angularjs

我正在努力习惯$ 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);

1 个答案:

答案 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', {}, {});
  }
]);

Plunker example

如果您运行此示例,您可以在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工作。