0

一个有角度的测试应用程序。我尝试从模型中的 php 页面接收数据。响应 echo json_encode($arr);来自 php 文件的此命令并具有此格式[{"id":"1","name":"first","text":"description"}]。要在我的模型中接收此数据,只需要使用查询原因 .get 给出错误。我在控制器中的查询: $scope.item = Items.query({id:$routeParams.id}); 现在,如果我想在我的模型中使用这些数据,我需要指定我的数组 item[0].name 这没问题,但是当我尝试保存编辑的数据时

 $scope.item[0].$save({id:$scope.item[0].id});

我有一个错误 TypeError: Object # has no method 'push'

我究竟做错了什么?

4

1 回答 1

0

如果您正确设置了资源,您应该可以通过简单地调用来保存:

$scope.item[0].$save();

但是,看起来您并没有这样做。使用时query,它通常返回一个数组。当您查询单个 ID 时,您确实应该使用以下get方法:

$scope.item = Items.get({id:$routeParams.id});
...
// Modify $scope.item as needed
...
$scope.item.$save();

定义资源的最简单方法是使用 Angular 提供的默认操作:

.factory('Items', function($resource) {
    return $resource('/angular/angular-seed/app/questions/php/maintext.php');
});

根据Angular 文档

The default set contains these actions:
{ 'get':    {method:'GET'},
  'save':   {method:'POST'},
  'query':  {method:'GET', isArray:true},
  'remove': {method:'DELETE'},
  'delete': {method:'DELETE'} };
于 2013-05-19T15:13:17.410 回答