gpt4 book ai didi

javascript - AngularJS - 处理 RESTful $resource 响应

转载 作者:行者123 更新时间:2023-11-29 17:15:13 24 4
gpt4 key购买 nike

我有一个 restful api 和 angularjs 应用程序。我在工厂内使用 $resource 来使用这个 api。我有一个请求有问题。我发布我的 api 来创建一些元素。

/api/service/thing/make-things

我需要在我的请求中传递一些数据。这是我正在做的:

$scope.someRequest = new SomeRequest(); // factory object returning an $resource
$scope.someRequest.some_field = 'abc';
$scope.someRequest.$save({someAdditionalParams:'123'}, function(values){...handling response...});

它工作正常并发布我想发布的数据,但在这种特殊情况下,我的发布响应是对象数组。

[{somestuff:'123'}, {somestuff:'321'} ... ]

Angular 试图将它映射回一个对象并向我抛出一个错误,该对象是预期的但得到了一个数组。我尝试使用 isArray:1 创建一个单独的资源方法,但它仍然失败并出现相同类型的错误。

那么,我的问题是:如何处理这种情况?是否可以取消将 $save 结果复制到 $resource 对象?

最佳答案

使用 $save,它将尝试将其映射回来。您可以使用 isArray:true 创建一个不会尝试将结果映射回来的新操作。您当然必须手动处理结果。

var someRequest = $resource('/api/service/thing/make-things',{'create':   {method:'POST', isArray:true}});
someRequest.create({some_field = 'abc',someAdditionalParams:'123'},function(data){
$scope.someRequestArray = data;
});

真正的 RESTful 架构应该返回创建的内容,这就是 $save 以它的方式工作的原因。您的需求略有不同,因此需要自定义操作。

关于javascript - AngularJS - 处理 RESTful $resource 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18665715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com