Angular自定义$ update函数"不是函数"

时间:2015-05-17 08:27:39

标签: javascript angularjs

我试图制作更新功能来替换用户的一些数据。 我创建了工厂:

factory('Details', ['$resource', function ($resource) {
    return $resource('/api/client/:id', null, {
        'update': { method: 'PUT'}
    });
}]);

和控制器:

.controller('ClientDetails', function ($scope, Details, $routeParams) {
    $scope.client = Details.query({ id: $routeParams.id });

    $scope.editClient = function () {
        $scope.client.$update();
    }
});

当输入函数editClient()时,它会抛出并出错: $scope.client.$update is not a function

我做错了什么?感谢

1 个答案:

答案 0 :(得分:2)

默认情况下,query方法定义为返回实例数组:'query': {method:'GET', isArray:true},请参阅ng-resource的文档。并且数组没有$update方法。从您的代码中,您需要使用get来获取实例,如下所示:

$scope.client = Details.get({ id: $routeParams.id });

$scope.editClient = function () {
    $scope.client.$update();
}