0

我一直在开发一个使用 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);
    });

但这行不通。希望有人可以为我指明下一个方向。

4

1 回答 1

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 状态,并会为您提供一些不太正确的线索

于 2014-09-14T01:38:19.620 回答