Добавление комментариев к изображениям


Я работаю над интервью пример кода на JavaScript, который не является моим родным языком. Задача достаточно проста: данный веб-страницы с различными изображениями, позволяют пользователям добавлять комментарии. Код для создания и управления образами, было дано мне; моя задача была построить comment.js и comments.controller.js. Все работает и я счастлива с ним, но так как JS-это не мой первый выбор я не знаю, если есть какие-то явные ошибки, которые я упустил. Будьте, пожалуйста, придирчивые, как это возможно.

Большинство моих код в следующих двух файлах. Остальное можно посмотреть на https://github.com/paulnicholsen27/flatiron но я не нуждаюсь в обратной связи на любой из этих (я их не писала) ... это просто может быть полезно, чтобы запустить всю программу, а не по частям. Я не знаю, как вы храбрые волшебники altrusitic наиболее эффективно работать.

comment.js

function Comment(imageId, text) {
    this.id = this.constructor.all.length;
    this.imageId = imageId;
    this.text = text;
    this.constructor.all.push(this);
}

Comment.all = [];

Comment.prototype.buildCommentEl = function() {
    return $(`<li id='comment-${this.id}'>${this.text}</li>`);
}

comments.controller.js

class CommentsController {
  constructor() {
    this.$addCommentForm = $('.add-comment')
  }

  init() {
    $(".add-comment").each((index, element) => {
        element.addEventListener("submit", this.addCommentFormListener);
    })
  }
}

CommentsController.prototype.addCommentFormListener = function(e){
    e.preventDefault();
    var image = $(this).closest(".image");
    var imageId = Number(image.find("ul").attr("data-id"));
    var commentForm = $(this).find('input[name="comment-description"]')
    var commentContents = commentForm.val();
    if (commentContents.length) {
       var newComment = new Comment(imageId, commentContents);
       CommentsController.render(newComment);
       commentForm.val("");  // reset comment form
    }
}



CommentsController.render = function(newComment){
    var imageId = newComment.imageId;
    var image = Image.all.find(image => image.id === Number(imageId));
    image.comments.push(newComment);
    var commentList = $(`#comments-${imageId}`);
    var commentEl = newComment.buildCommentEl();
    commentList.append(commentEl);
}


Комментарии