Javascript .delete()呈现错误路径
我试图为我的对象实现delete方法,但遇到了一些麻烦 例如,我的函数引用了一个错误的URLJavascript .delete()呈现错误路径,javascript,angularjs,Javascript,Angularjs,我试图为我的对象实现delete方法,但遇到了一些麻烦 例如,我的函数引用了一个错误的URL/users/1/tasks?id=1,但我希望它引用的是/users/1/tasks/1。如何解决这个问题 var app = angular.module('Todolist', ['ngResource']); app.factory('Task', [ '$resource', function($resource) { return $resource('/users/
/users/1/tasks?id=1
,但我希望它引用的是/users/1/tasks/1
。如何解决这个问题
var app = angular.module('Todolist', ['ngResource']);
app.factory('Task', [
'$resource', function($resource) {
return $resource('/users/:user_id/tasks/', {user_id: '@user_id'}, {update: {method: 'PUT'}});
}
]);
app.controller('TasksCtrl', [
'$scope', 'Task', function($scope, Task) {
$scope.user = current_user
$scope.deleteTask = function(task){
alert(task.id);
if (confirm('Are you sure')) {
var index = $scope.tasks.indexOf(task);
Task.delete({ user_id: $scope.user.id, id: task.id },
function(success){
$scope.tasks.splice(index, 1);
});
}
};
}
]);
您应该执行类似于
/users/:user\u id/tasks/:task\u id
的路径来获取正确的URL/users/1/tasks/1
。否则,在它的当前形式中,它将读取/tasks/
之后的部分作为查询参数,这就是当前正在发生的情况。更改/users/:user\u id/tasks/to/users/:user\u id/tasks/:id@maddygoround这很有帮助,谢谢。@maddygoround,我只是想知道,为什么我们必须指定{id:'@id'}
在资源路由之后?您不必提供{user\u id:'@user\u id,id:'@id'},您已经在delete调用中这样做了