AngularJS Response与配置的参数不匹配

时间:2015-04-09 23:03:22

标签: angularjs angularjs-service

我的服务配置存在问题。我希望通过此功能显示一个用户:

$scope.findOne = function() {
    $scope.user = Users.get({
        userId: $stateParams.userId
    });
};

但我遇到用户服务问题:(我不知道,我应该如何更改代码以避免角度错误:

  

操作object的资源配置出错。预期的回应   包含数组但得到{2}

这是我实际工作服务的代码(当然没有函数findOne工作:))

'use strict';

angular.module('users').factory('Users', ['$resource',
    function($resource) {
        return $resource('users', {}, { 
            update: {
                method: 'PUT'
            },
            remove: {
                method: 'DELETE',
                url: 'users/:id',
                params: {id: '@_id'}
            }
        });
    }
]);

1 个答案:

答案 0 :(得分:1)

我猜你的users API端点期待GET请求/users/:userId。您的代码目前会请求/users?userId=nnn。您需要为URL中的ID添加get的操作,例如

return $resource('users', {id: '@userId'}, {
    get: {
        method: 'GET',
        url: 'users/:id',
        isArray: false
    },
    // etc

您也可以将users/:id设为默认网址,只要它不会干扰您的其他操作配置。