CRUD的保存方法是指错误的URL

时间:2015-08-25 05:41:51

标签: javascript angularjs

我需要 Task.save 转到/users/:user_id/tasks,但它似乎引用了错误的路径,我收到了错误:

No route matches [POST] "/users/tasks"

我该如何解决这个问题?提前谢谢。

JS

var app = angular.module('Todolist', ['ngResource', 'xeditable']);

  app.factory('Task', [
    '$resource', function($resource) {
      return $resource('users/:user_id/tasks/');
     }
   ]);

  app.controller('TasksCtrl', [
    '$scope', 'Task', function($scope, Task) {

     $scope.addNewTask = function() {
       var task = Task.save($scope.newTask);
       $scope.tasks.push(task);
       $scope.newTask = {};
     };
   }
  ]);

1 个答案:

答案 0 :(得分:2)

您没有告诉您的资源从哪里获取:user_id 路径参数。

您可以在致电save

时提供
Task.save({user_id: 'some value'}, $scope.newTask)

或者,如果属性是$scope.newTask的一部分,例如$scope.newTask = {id: 'some id'},则在资源定义中声明它

return $resource('users/:user_id/tasks', {user_id: '@id'})