我们假设我们有Person
$资源,如下所示:
$scope.person = {
name: 'Max',
friends: [1, 2, 3]
}
如果我们Person.save($scope.person)
到服务器,它将发送以下参数:
name: 'Max'
friends: '1'
friends: '2'
friends: '3'
所以我无法访问服务器上的friends
数组。只有最后一个元素可以访问。
使用$resource
将包含数组的对象保存到服务器的正确方法是什么?
P.S。我知道一种真正的hacky方式,即将friends
属性重命名为friends[]
,但这并没有解决我的问题,因为我有很多这些,我可以&# 39;来回重新定义属性
答案 0 :(得分:1)
non-GET "class" actions: Resource.action([parameters], postData, [success], [error])
所以你必须使用:
Person.save(null, $scope.person)
(第一个参数是url params的对象,第二个是要发送的数据)
然后您的朋友阵列将在请求正文中提供。
另请注意,如果您有人员资源,则可以执行以下操作:
var person = $resource(...);
person.name = 'john';
person.friends = ['friend1' ,'friend2'];
person.$save();