Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 环回角度SDK';s upsert在修补程序中包含ID,导致错误_Angularjs_Mongodb_Loopbackjs - Fatal编程技术网

Angularjs 环回角度SDK';s upsert在修补程序中包含ID,导致错误

Angularjs 环回角度SDK';s upsert在修补程序中包含ID,导致错误,angularjs,mongodb,loopbackjs,Angularjs,Mongodb,Loopbackjs,我正在使用已设置的环回3 API生成的Angular SDK,但在生成的$resource上遇到了$save()方法的问题。此方法映射到upsert操作,该操作本身映射到patchOrCreate。问题是,在调用$save()时,整个模型对象被发送到修补程序API,包括模型的id。我使用的是MongoDB后端,将idInjection设置为true,这意味着forceId也是true。这会在$save()上引发以下错误: 请求修补程序/api/Foo?id=58995169468d951cbf5

我正在使用已设置的环回3 API生成的Angular SDK,但在生成的
$resource
上遇到了
$save()
方法的问题。此方法映射到
upsert
操作,该操作本身映射到
patchOrCreate
。问题是,在调用
$save()
时,整个模型对象被发送到修补程序API,包括模型的
id
。我使用的是MongoDB后端,将
idInjection
设置为true,这意味着
forceId
也是true。这会在
$save()
上引发以下错误:

请求修补程序/api/Foo?id=58995169468d951cbf546ce4的未处理错误:验证错误:
Foo
实例无效。详细信息:
id
无法设置(值:58995169468d951cbf546ce4)

我可以通过将
forceId
设置为false来绕过此错误,但这会带来安全问题。我还可以通过修改生成的服务文件并向
$resource
添加一个真正的
upsert
操作来解决这个问题,该操作使用PUT而不是PATCH,并修改URL以包含id。这仍然会触发关于id的警告,但它可以工作,并且不会引发任何错误。然而,编辑生成的代码并不是我想做的事情

正确的解决方法是什么?我想使用
$save()
,但仍然保持安全性,同时不编辑生成的文件。

在模型中设置“forceId”:false,它将如下所示 { “名称”:“产品”, “基”:“PersistedModel”, “注射”:对, “forceId”:假, }

有关更多信息,请访问