我一直在研究一个小应用程序,它使用Laravel 4作为后端,以AngularJS为起点(主要是学习angularjs)。
我的想法是,我可以通过表单添加书签,并将其显示在可搜索的表格中。我已经将它工作,我可以发布到数据库并保存记录。以下工作完全符合我的需要。
$scope.addLink = function () {
var link = {
title: $scope.newTitle,
address: $scope.newAddress,
type: $scope.newType
};
$scope.links.push(link);
$http.post('bookmarks', link);
};
但是,我无法弄清楚如何删除一行。好吧,我可以在表中删除它,但不能使用路由从数据库中删除它。我有一个ng-click函数,它使用splice从表中删除行,但不知道如何将详细信息发送到Laravel路由以从数据库中删除。到目前为止,我有这个:
$scope.remove = function ( idx ) {
var link = $scope.links[idx];
$scope.links.splice(idx, 1);
$http.delete('removemark/{link.id}');
};
显然$ http.delete设置不正确,但不知道该怎么做。
我有这样的路线:
Route::delete('removemark /{id}', function($id)
{
Bookmark::destroy($id);
});
但这不起作用。希望有人能指出我的下一个方向。
答案 0 :(得分:0)
你需要自己构建url字符串。
$scope.remove = function ( idx ) {
var link = $scope.links[idx];
$http.delete('removemark/' + link.id).success(function(response){
/* should validate response and then remove from array */
$scope.links.splice(idx, 1);
}).error(function(err){
/* do something with errors */
});
};
我建议您将项目保留在数组中,直到您确认从服务器响应中删除,然后将其从数组中删除。
使用浏览器控制台网络选项卡检查请求。您可能会看到404状态与您所拥有的相同,并且会为您提供线索,其中的内容并非正确