Rest 角度错误:对象没有方法推送

Rest 角度错误:对象没有方法推送,rest,angularjs,Rest,Angularjs,我正在尝试使用REST服务和$resource进行角度工作 它可以从JSON获取数据,但当使用$save()或名为$rec()的自定义方法进行更新时,控制台中出现一个错误,错误是:TypeError:Object#没有方法“push”。将isArray切换到true或false,没有改变任何内容 我犯了一个错误: 当您使其在自己的服务器上运行时,该错误是可见的 html: <div ng-controller="TestCtrl"> <div ng-repeat="ob

我正在尝试使用REST服务和
$resource
进行角度工作

它可以从JSON获取数据,但当使用
$save()
或名为
$rec()
的自定义方法进行更新时,控制台中出现一个错误,错误是:
TypeError:Object#没有方法“push”
。将
isArray
切换到
true
false
,没有改变任何内容

我犯了一个错误:

当您使其在自己的服务器上运行时,该错误是可见的

html:

<div ng-controller="TestCtrl">
    <div ng-repeat="obj in objs">
        <div>
          <h3>{{obj.name}}</h3>
          <h3>{{obj.age}}</h3>
          <input type="text" ng-model="obj.name" /><br />
          <input type="text" ng-model="obj.age" /><br />
          <button ng-click="save(obj)">Save</button>
        </div>
      </div>
    </div>

你知道错误来自哪里吗

我已将您的plnkr复制到我的开发机器上,设置了一个sinatra站点,如下所示,但我仍然没有看到此错误。当我点击一个蓝色按钮时,客户端发布了一个JSON字符串,如
{“name”=>“louise”,“age”=>“32”}
,一切都很好。您是否适当地处理了
POST

这是我的服务器代码:

app.ru

# -*- coding:utf-8; mode:ruby; -*-

require 'json'
require 'multi_json'
require 'sinatra/base'
require 'sinatra/json'

class App < Sinatra::Base
  helpers Sinatra::JSON

  get '/datas.json' do
    json([
          {"name" => "louise", "age" => "32"},
          {"name" => "jeanne", "age" => "25"},
          {"name" => "renée", "age" => "21"},
          {"name" => "fernande", "age" => "28"}
         ])
  end

  post '/datas.json' do
    data = JSON.parse request.body.read.to_s
    200
  end
end
# -*- coding:utf-8; mode:ruby; -*-

require './app.rb'
run App

您已经定义了自定义方法
$rec
,但为什么要调用
$save
?我的情况不同:在保存数据时出错,而不是在获取数据时出错。我创建了一个带有isArray参数的自定义函数“$rec()”。但将其从true更改为false并不能消除错误。@akonsu我尝试了标准的
$save()
方法和自定义的
$rec()
方法。结果是一样的。我在plnkr中没有看到这个错误。当我点击“保存”时,它给了我404。现在,这是一个静态的.json文件,在我发布时没有记录任何内容。我只是想在控制台上检查一下这篇文章是否有效。然后将其插入服务器并处理动态数据。所以我想我的错误来自于这个。你认为呢?@akonsu是对的,@desgnl你的问题是
$resource
对象中的url指向一个文件-datas.json,用于检索数据,但不用于保存,因为
$save()方法
唯一做的事情就是根据指定的url发送POST请求和数据。因此,您需要一些后端来处理此请求并发送响应,如@akonsu所示。在这种情况下,您将没有错误。
# -*- coding:utf-8; mode:ruby; -*-

require './app.rb'
run App