почему для отображения DOM-представления требуется два клика

#html #dom

#HTML #dom

Вопрос:

0

теперь это мой код

файл шаблона:

<quill-view-html [content]=»вопрос.questionText» format =»html» theme =»snow» [id]=»question.id » [изменить]=»loadAnswer(Студенческий ответ)»

.ts-файл:

loadAnswer(studentAnswer) {

   if (document.getElementById(question.id)) {
  let inputs = 
  document.getElementById(question.id).getElementsByTagName('input') || [];
  inputs.forEach((input, index) => {
     input.value = studentAnswer[index]
  })
}
 

}
ответ отображается в поле ввода, но я не могу ввести новый ответ поверх него, поскольку возвращается предыдущий ответ. Есть какое-либо решение для этого?

Комментарии:

1. Я не могу понять вопрос, и из этого кода не похоже, что вы вообще используете Angular. Кроме того, вам необходимо предоставить общий доступ к соответствующей части вашего шаблона.

Ответ №1:

Во-первых, давайте сделаем ваш код более красивым.

    loadAnswer(studentAnswer){
          if (document.getElementById(question.id)) {
          let inputs = document.getElementById(question.id).getElementsByTagName('input') || [];
          inputs.forEach((input, index) => {
             input.value = studentAnswer[index]
          })
        }
      }
 

Можете ли вы поделиться с нами кодом вашего шаблона? Функция выглядит хорошо.

Комментарии:

1. <quill-view-html [content]=»questionText» format=»html» theme=»snow» [id]=»question.id «> </quill-view-html> {{loadAnswer(вопрос)}}

2. Эта функция не возвращает никакого значения. Вы не должны использовать {{ }} . Попробуйте (изменить)=»loadAnswer(вопрос)» в редакторе.