我在/users
网址上有一个包含删除按钮的用户列表。我的删除路线如下所示:
app.route('/users/:userId')
.get(users.read)
.put(users.updateById)
.delete(users.delete);
app.param('userId', users.userById);
但问题是,我的删除按钮在/users
网址上调用了删除,因此我收到了DELETE http://localhost:3000/users 404 (Not Found)
。我怎么解决这个问题?我的控制器remove()函数你可以在下面看到。我怎样才能将'/user/' + user._id
传递给它?仅从范围正确删除用户:(
$scope.remove = function(id) {
var user = $scope.users[id];
var modalOptions = {
closeButtonText: 'Cancel',
actionButtonText: 'Delete user',
headerText: 'Delete ' + user.displayName + '?',
bodyText: 'Are you sure you want to delete this user?'
};
modalService.showModal({}, modalOptions).then(function() {
if (user) {
user.$remove();
for (var i in $scope.users) {
if ($scope.users[i] === user) {
$scope.users.splice(i, 1); // remove item from scope
}
}
}
});
};
用户服务是mean.js安装的基础
angular.module('users').factory('Users', ['$resource',
function($resource) {
return $resource('users', {}, {
update: {
method: 'PUT'
}
});
}
]);
答案 0 :(得分:0)
angular资源有以下方法:get,save,query,remove,delete。除非另有说明,否则它们不会按照您需要的方式在URL中传递参数。在这种情况下,您需要指定remove
方法并确保在URL中传递参数。
angular.module('users').factory('Users', ['$resource',
function($resource) {
return $resource('users', {}, {
update: {
method: 'PUT'
},
remove: {
method: 'DELETE',
url: 'users/:id',
params: {id: '@_id'}
}
});
}
]);
这假设您的用户对象具有_id
属性,这在平均堆栈中很常见。您应该设置get save并以相同的方式更新。