我的提取和发布工作正常,我要整理的唯一一件事是如何添加一个赞按钮。我已经动态添加了一个img,当用户输入评论时它会出现。我正在尝试使用addEventListener推送该img时进行注册,然后将json对象中的“点赞”更新为服务器。如果我查看“邮递员”,则可以看到字段(名称,评论,ID,顶,时间戳)。由于我已经对此发表评论了...
let pushSubmit = document.getElementById('comment_submit');
pushSubmit.addEventListener('click', function(e){
e.preventDefault();
let uName = document.getElementById('user_name');
let uComment = document.getElementById('user_comment');
let userData = {
name: uName.value,
comment: uComment.value,
};
commentPutter(userData);
uName.value = ' ';
uComment.value = ' ';
});
和POST到服务器...
function commentPutter(userData){
const init = {
body: JSON.stringify(userData),
method: 'POST',
headers: {
'content-type': 'application/json'
}
};
let postRequest = fetch("https://some.api.with-key=something", init);
postRequest.then((response) => {
console.log(response.status);
return response.json();
})
.then((justPosted) => { // post response json
console.log(justPosted);
lastPostedId = justPosted.id;
return fetch("https://some.api.with-key=something");
})
.then((response) => {
// comment list response
return response.json();
})
.then((commentsList) => {
// comment list response json
console.log(commentsList);
const match = commentsList.find((item) => {
return item.id === lastPostedId;
});
console.log(match);
});
}
我是否只需要为addEventListener编写全新的函数,例如like按钮(img),还是可以使用现有功能?只是稍微修改一下?由于它还会更新服务器上的现有注释。我不能简单地说函数中的“喜欢” +1(附加了事件监听器)
let pushSubmit = document.getElementById('comment_submit');
pushSubmit.addEventListener('click', function(e){
e.preventDefault();
let uName = document.getElementById('user_name');
let uComment = document.getElementById('user_comment');
let uLikes = document.getElementById('heartImage')
let userData = {
name: uName.value,
comment: uComment.value,
likes: uLikes.value,
};
我在这里面临的挑战是,为什么要重新发送名称和评论信息?我只需要发送注释“ ID”(唯一)和基于按钮单击的计数值。 (我的逻辑在这里吗?)?