Angular资源$ save没有push方法

时间:2013-05-20 08:59:31

标签: angularjs

在Angular,我有以下工厂:

.factory('User', function($resource){
    return $resource(
        '/users',//URL
        {},//Params defaults
        {
            'save': {method: 'POST', isArray: true }
        }//Actions
    ) ;
})

在我的控制器中,我尝试保存一个新的资源:

    $scope.newUser = new User() ;

    $scope.newUser.name = $scope.newUserForm.name ;
    $scope.newUser.email = $scope.newUserForm.email ;

    $scope.newUser.$save() ;

我从服务器返回一个数组:

[       {id:12,        用户名:“adfsdf”,        电子邮件:“sadfsf@sdf.com”       }    ]

但不知怎的,我仍然在控制台中得到错误:

TypeError:Object#没有方法'push'

知道我遗失了什么吗?

由于

1 个答案:

答案 0 :(得分:0)

对我来说,客户端的用户资源不是一个数组,这就是为什么它缺少推送方法。

'save': {method: 'POST', isArray: true }  //<---- You say it is an array.

$scope.newUser = new User() ; <-- create it

$scope.newUser.name = $scope.newUserForm.name ; <--- put data into it
$scope.newUser.email = $scope.newUserForm.email 

现在用户看起来像:

{
  name:"somename",
  email:"some@email.com"
}

所以它不是数组。当您的服务器响应时,角度尝试将答案推送到“数组”但事实上,它不是数组。

所以我建议保留“isArray:true”,因为一个用户不是数组。没有用户集合。

我不知道,角度如何响应您的服务器响应,当呈现阵列式时,只需尝试它。