在Angular JS中对新资源执行$ save的问题

时间:2015-03-27 16:18:13

标签: angularjs angular-resource

我正在尝试使用Angular实现一个示例应用程序,该应用程序使用$ resource对象与后端REST API进行交互。但是,后端系统不会为资源生成id,因此需要在客户端上创建的对象上定义这些id。这会在新的资源上调用$ save方法时出现问题,因为它强制将JSON数据发布到错误的URL,即POST发送到:

/resources/employees/1234

而不是:

/resources/employees

如果我可以避免使用低级$ http服务,我宁愿不必使用它。

有谁知道如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:0)

这是因为您以这种方式配置了$resource构造函数,例如:

$resource('resources/employees/:employeeId', {
    employeeId: @id
});

这意味着当您在此构造函数生成的资源对象上调用$save$delete等方法时,url中的变量:employeeId将填充值{ {1}}存在于您调用方法的对象上。为避免这种情况,您必须修改构造函数配置,以便url变量不依赖于对象id属性。