Как удалить данные с API по URL+ID Angularjs

198
12 декабря 2018, 10:50

Проблема - нужно удалить комментарий с текущим ID по клику на Delete. Не могу связать ID комментария и функцию удаления. Вместо My iD должен быть ID комента по кнопке которого я кликаю Вот код js

var myApp = angular.module('myApp', []);
myApp.controller('CommentsCtrl', function($scope, $http) {
    $http({
        method : "GET",
        url : "/comments"
    }).then(function (response) {
        $scope.data = response.data;
        $scope.name = response.data;
        $scope.date = response.data;
        $scope.image = response.data;
        $scope.content = response.data;
        $scope.id = response.data;
    });
    $scope.deleteComment = function(){
        $http({
            method : "delete",
            url : "/comments/MY ID"
        }).then(function(response){
            alert("Success!");
        }, function(response){
            alert("Try Again");
        });
    };
});

Вот мой html код -

<div class="container" id="comments-block" ng-controller="CommentsCtrl">
        <div class="row" ng-repeat="item in data">
            <div class="col-lg-1 offset-lg-1">
                <div class="profile-photo">
                    <img class="profile-img" src="{{item.author.avatar}}">
                </div>
            </div>
            <div class="col-lg-10">
                <span class="pname text-muted">{{item.author.name}}</span>
                <span class="pdate text-muted">{{item.created_at}}</span>
                <br>
                <div class="content">{{item.content}}</div>
                <ul class="list-inline d-flex text-muted">
                    <li><span><i class="fas fa-edit"></i></span>Edit</li>
                    <li><a class="delete-comment" href="" ng-click="deleteComment(item.author.id)"><span><i class="fas fa-times pl-3"></i></span>Delete</a></li>
                    <li><a class="replytocomment"><span><i class="fas fa-reply pl-3"></i></span>Replay</a></li>
                </ul>
                <div class="row">
                    <div class="col-lg-8 offset-lg-2">
                        <div class="text-area-reply hidden">
                            <textarea name="post-reply" maxlength="255" id="post-reply" rows="3" placeholder="Your Message"></textarea>
                            <div class="col-lg-11 offset-lg-1">
                                <div class="button-post-reply text-right">
                                    <button class="btn btn-warning text-muted reply" type="submit" id="reply">Reply</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="row" ng-if="item.children.length > 0" ng-repeat="c in item.children">
                    <div class="col-lg-1 offset-lg-2">
                        <img class="profile-img-children" src="{{c.author.avatar}}">
                    </div>
                    <div class="col-lg-9">
                        <span class="pname-children text-muted">{{c.author.name}}</span>
                        <span class="pdate-children text-muted">{{c.created_at}}</span>
                        <br>
                        <div class="content-children">{{c.content}}</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
Answer 1
$scope.deleteComment = function(){
    $http({
        method : "delete",
        url : "/comments/MY ID"
    }).then(function(response){
        alert("Success!");
    }, function(response){
        alert("Try Again");
    });
};   

Попробуйте заменить на:

 $scope.deleteComment = function(_id){
    $http({
        method : "delete",
        url : "/comments/" + _id
    }).then(function(response){
        alert("Success!");
    }, function(response){
        alert("Try Again");
    });
};

И в разметке ng-click="deleteComment(item.author.id)" похоже что item.author.id - это ID автора комментария, скорее всего нужно передавать item.id. Но без понимания что там приходит от сервера - сложно что-то утверждать.

READ ALSO
Приведение БД к НФ

Приведение БД к НФ

Имеется три таблицы:

228
Добавление заказа в Базу данных, и проверка на доступность

Добавление заказа в Базу данных, и проверка на доступность

Направьте на путь истинныйЕсть интернет-магазин

186
как поменять varchar to text mysql

как поменять varchar to text mysql

Не могу нигде найтиКак поменять в базе тип строки с varchar на text ?

217
MySQL запрос на обьединение

MySQL запрос на обьединение

У меня есть две таблицы в одной собрано количество лайков по фотографии, а во второй по той же фото кол-во комментариевНу по разным фоткам...

278