Проблема - нужно удалить комментарий с текущим 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>
$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. Но без понимания что там приходит от сервера - сложно что-то утверждать.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости