【问题标题】:How to create a custom POST request service in Angularjs如何在 Angularjs 中创建自定义 POST 请求服务
【发布时间】:2014-05-18 19:40:56
【问题描述】:

我有一个简单的服务可以做到这一点:

packlightApp.factory('Hike', ['$resource',
    function ($resource) {
        return $resource('app/rest/hikes/:id', {}, {
            'query': { method: 'GET', isArray: true},
            'get': { method: 'GET'},

        });
    }]);

我想添加一个新方法,将数组发送到我的后端以保存它。我不知道我的用例的正确语法是什么,以及如何在后端捕获它。后端是用 Java 编码的。例如(简单的 POST 请求的情况):

@RequestMapping(value = "/rest/hikes",
            method = RequestMethod.POST,
            produces = "application/json")
    public void create(@RequestBody HikeDto hikedto) {...}

感谢您的帮助。

【问题讨论】:

  • ng-resource 已经有了保存数据数组的方法 - $save.

标签: angularjs service resources


【解决方案1】:

您可以使用 $resource 中的 de 'save' 方法

app.controller('postCtrl', function($scope, Hike) {
    var objectArray = [{data: 1}, {data: 2}];
    Hike.save({id: 'yourId'}, objectArray, function(response) {
        console.log(response);
        // Do things on success.
    });
});

【讨论】:

  • 好的,谢谢。我的 java 方法的签名将在后端拦截请求是什么?如果我在签名中使用附加参数创建相同的方法,我的服务器将无法启动。
  • 你可以参考这个问题,他们正在尝试用Java RequestMapping解决类似的问题。告诉我角度部分是否有效。
  • 当我尝试您的链接解决方案时,我在线程“主”org.springframework.beans.factory.BeanCreationException 中遇到异常:创建类路径资源中定义的名称为“requestMappingHandlerMapping”的bean时出错 [org/ springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]:调用init方法失败;嵌套异常是 java.lang.IllegalStateException: Ambiguous mapping found.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多