Kir*_*mov 2 javascript rest angularjs
我有一个安静的api和angularjs应用程序.我在工厂内使用$ resource来处理这个api.我有一个请求有问题.我发布我的api来创建一些元素.
/api/service/thing/make-things
Run Code Online (Sandbox Code Playgroud)
我需要传递一些数据.这是我在做的事情:
$scope.someRequest = new SomeRequest(); // factory object returning an $resource
$scope.someRequest.some_field = 'abc';
$scope.someRequest.$save({someAdditionalParams:'123'}, function(values){...handling response...});
Run Code Online (Sandbox Code Playgroud)
它工作正常,我希望发布POST数据,但在这种特殊情况下,我的帖子响应是对象数组.
[{somestuff:'123'}, {somestuff:'321'} ... ]
Run Code Online (Sandbox Code Playgroud)
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;
});
Run Code Online (Sandbox Code Playgroud)
真正的RESTful架构应该返回创建的内容,这就是为什么$ save以它的方式工作的原因.您的需求略有不同,因此需要自定义操作.
归档时间: |
|
查看次数: |
5512 次 |
最近记录: |