如何使用Angular的$ resource发送登录POST请求?

Cod*_*ein 3 http angularjs ngresource

我认为这样做很简单,但非常令人困惑.

我想设置我的Angular登录表单以允许我的用户登录.在登录表单上,我想接收输入并将其作为POST请求发送到我的服务器进行验证.

但是,我找不到$resource用于发送POST请求的单个示例.有没有人有他们可以分享的任何例子?

cub*_*buk 6

定义资源后,可以使用save方法,该方法是post定义的默认操作$resource.save的第一个参数接受用作url params的参数,第二个参数接受post数据.

var LoginResource = $resource("/rest/path/login");
var bodyObject = {username:"test", password:"test"};
LoginResource.save({}, bodyObject);
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用promise来访问对您的请求的响应$resource.为了澄清我将提供一个样本服务和控制器,它将发布一个帖子请求.

angular.module('yourApp').
factory('yourService', ["$resource", function($resource){
    var LoginResource = $resource("/rest/path/login");
    var serviceObject = {loginUser: function (userName, password){
        return LoginResource.save({}, {userName: userName, password: password}).$promise; //this promise will be fulfilled when the response is retrieved for this call
    }};
    return serviceObject;
}];

angular.module("yourApp").controller("LoginCtrl", ["$scope", "yourService",     
   function($scope, yourService){
    yourService.loginUser("test", "test").then(
        function(loginResult){
           console.log(loginResult);
        },
        function(err){
           console.error(err);
        }
    )
  }];
Run Code Online (Sandbox Code Playgroud)