Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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
Java Can';t路线角度正确_Java_Angularjs_Angular Ui Router_Spark Java - Fatal编程技术网

Java Can';t路线角度正确

Java Can';t路线角度正确,java,angularjs,angular-ui-router,spark-java,Java,Angularjs,Angular Ui Router,Spark Java,尝试为TodoApp编写RESTAPI,为ADD、UPDATE、GET ALL设置路由,但仍停留在DELETE方法上。 我的角度控制器: angular.module('todoListApp') .controller('todoCtrl', function($scope, Todo) { $scope.deleteTodo = function(todo, index) { $scope.todos.splice(index, 1); todo.$delete();

尝试为TodoApp编写RESTAPI,为ADD、UPDATE、GET ALL设置路由,但仍停留在DELETE方法上。 我的角度控制器:

angular.module('todoListApp')
.controller('todoCtrl', function($scope, Todo) {
  $scope.deleteTodo = function(todo, index) {
    $scope.todos.splice(index, 1);
    todo.$delete();
    console.log("<<" + todo.name + ">> deleted.");
 };
我的火花控制器:

    delete("/todos", "application/json", (req, res) -> {
        Todo todo = gson.fromJson(req.body(), Todo.class);
        if (todo == null) throw new ApiError(404, "Could not find todo.");
        todoDao.delete(todo);
        return todo;
    }, gson::toJson);

    delete("/todos/:id", "application/json", (req, res) -> {
        int id = Integer.parseInt(req.params("id"));
        Todo todo = gson.fromJson(req.body(), Todo.class);
        if (todo == null) throw new ApiError(404, "Could not find todo.");
        todoDao.delete(todo);
        return todo;
    }, gson::toJson);
单击删除按钮(ng click=“deleteTodo(todo,$index)”)时,将调用第一个控制器,但不会调用第二个控制器。我做了两个只是为了调试。 错误消息是:

angular.js:10661 DELETE http://localhost:4567/todos?id=3 404 (Not Found)
在哪里可以看到正确的id参数,但为什么控制器没有捕捉到它?

给定一个模板/path/:verb和参数{verb:'greet', 称呼:'Hello'}结果为URL/path/greet?称呼=Hello


但您的API预期/参数

错误在angular中。工厂代码中,必须有

angular.module('todoListApp')
.factory('Todo', function($resource){
  return $resource('/todos/:id', {id: '@id'}, {
    update: {
      method: 'PUT'
    },
    save: {
      method: 'POST'
    },
    delete: {
      method: 'DELETE',
      params: {id: '@id'}
    }

  });
});

lost':id'返回$resource行。

delete(“/todos/:id”,“application/json”,(req,res)->{int-id=Integer.parseInt(req.params(“id”);Todo-Todo=gson.fromJson(req.body(),Todo.class);if(Todo==null)抛出新的ApiError(404,“找不到Todo”);Todo.delete(Todo);return todo;},gson::toJson);问题中的Spark controllers body=Java控制器用于此url,或者您的意思是什么?对不起,我弄糊涂了。我将删除我的评论。(您也可以删除您的)
angular.module('todoListApp')
.factory('Todo', function($resource){
  return $resource('/todos/:id', {id: '@id'}, {
    update: {
      method: 'PUT'
    },
    save: {
      method: 'POST'
    },
    delete: {
      method: 'DELETE',
      params: {id: '@id'}
    }

  });
});