通过PUT请求$ resource angular.js保存数据

时间:2014-06-30 11:07:44

标签: angularjs rest resources put ngresource

请原谅我,如果已经被问到这个问题我已经错过了但是这整个周末一直困扰着我,我不知道我做错了什么。我正在尝试使用ngResource模块中angular.js中的$ resource服务发出PUT请求。我对角度很新,所以如果我在学习曲线上再次向新手犯错误道歉。

我已遵循官方网页底部的指导原则:

https://docs.angularjs.org/api/ngResource/service/ $资源

我正在向后端发出GET请求并拉入一个“组”对象,其中一个属性称为“团队”,这是一个空数组。

然后,我为用户提供了通过表单创建团队的功能,然后将其保存到mongodb。我自动希望团队被添加到他们所属的用户组中,因此我希望组对象将团队添加到团队阵列,然后执行PUT。我有一个Groups服务,我注入它作为控制器的依赖。我正在做以下事情:

app.controller('teamsController', ['$scope', '$http', '$routeParams', '$location', 'Teams', 'Groups', function ($scope, $http, $routeParams, $location, Teams, Groups) {

    $scope.createTeam = function () {

        var team = new Teams({.... }); //create the new team with all the data required
        var groupId = this.team.group; //get the id to pull the correct group id from mongodb

        //use Groups service to pull in the group to update, save it as a variable group

        Groups.get({groupId: groupId}).$promise.then(function(group) {
            var group = group;
            group.teams.push(team);  //push the team to the teams array in the group

            console.log(group); //This logs exactly what I am hoping for with the new team in the teams array on the group object

            //save the new team to the database, update the group by adding the new team to the teams array then go to the new team page

            team.$save(function (response) {
                Groups.update({id: groupId}, group);
                $location.path("teams/" + response._id);
            });
        });
    };
}]);

我的团队创建了它应该如何,并且我在PUT请求上从服务器获得了成功的200,但由于某种原因,该团队没有被添加到组对象的teams数组中。如果我错过了一些明目张胆的事情......请提前道歉。任何帮助将不胜感激。这是我的团体服务:

app.factory('Groups', ['$resource', function('$resource') {
    return $resource(
    'api/v1/groups/:groupId',
    {
        groupId: '@_id'
    },
    {
        update: {method: 'PUT'}
    }
);

0 个答案:

没有答案