Угловой 6: ошибка TS2339: свойство 'значение' не существует для типа 'HTMLElement'

У меня есть текстовое поле, которое позволяет пользователю отправлять комментарии, я хочу получить дату во время отправки комментария и сохранить в json вместе с добавленным комментарием:

после того, как комментарий будет отправлен в файл json, я хотел бы иметь что-то вроде этого:

 "comment": [
    {
      "id": 1,
      "username": "Michael Ross",
      "city": "New York USA",
      "date": "2018-01-01T00:00:00",
      "task_id": 1,
      "description": "Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et lig"
    }
]

Проблема: прямо сейчас при отправке комментария у меня следующее: дата не отображается:

 "comment": [
    {
      "id": 1,
      "username": "Michael Ross",
      "city": "New York USA",
      "task_id": 1,
      "description": "Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et lig"
    }
]

Вот что я до сих пор пытался извлечь дату из введенного комментария.

HTML:

<form class = "add-comments" [formGroup] = "addForm" (keyup.enter) = "addComments()">
      <input type = "hidden" id = "localTime" name = "localTime">
    <div class = "form-group">
      <textarea class = "form-control" rows = "1" placeholder = "Add comments" formControlName = "description" id = "description"></textarea>
    </div>
  </form>

Вот метод на компо ц.

 addComments(task_id) {
    const formData = this.addForm.value;
    formData.task_id = task_id;
    this.userService.addComments(formData)
    .subscribe(data => {
      this.comments.push(this.addForm.value);
    });
    const date = new Date();
    const d = date.getUTCDate();
    const day = (d < 10) ? '0' + d : d;
    const m = date.getUTCMonth() + 1;
    const month = (m < 10) ? '0' + m : m;
    const year = date.getUTCFullYear();
    const h = date.getUTCHours();
    const hour = (h < 10) ? '0' + h : h;
    const mi = date.getUTCMinutes();
    const minute = (mi < 10) ? '0' + mi : mi;
    const sc = date.getUTCSeconds();
    const second = (sc < 10) ? '0' + sc : sc;
    const loctime = month + day + hour + minute + year + '.' + second;

    document.getElementById('localTime').value = loctime;

  }

К сожалению, когда я отправляю комментарий, я получаю следующую ошибку

ERROR in src/app/user-profile/user-profile.component.ts(75,21): error TS2365: Operator '+' cannot be applied to types 'string | number' and 'string | number'.
src/app/user-profile/user-profile.component.ts(77,42): error TS2339: Property 'value' does not exist on type 'HTMLElement'.

что мне нужно изменить, чтобы получить то, что я хочу ??

Какой формат у loctime внутри "compoents ts"?

Michael Czechowski 27.10.2018 11:39
const loctime = month + day + hour + minute + year + '.' + second; Я сделал это таким образом, но не уверен, что это правильно, поэтому мне нужна была помощь :(
The Dead Man 27.10.2018 11:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
4 955
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать этот код

const loctime = `${year}-${month}-${day}T${hour}:${minute}:${second}`;
// output "2018-10-27T10:26:32"

Вместо использования Javascript Way попробуйте использовать Angular способ

<input type = "hidden" id = "localTime" name = "localTime" formControlName = "localTime">

this. addForm.get('localTime').setValue(loctime);

Примечание: нам нужно использовать обратную галочку (``) вместо одинарной кавычки ('').

Дайте проверить, я буду брб :)

The Dead Man 27.10.2018 12:46

после изменения, как вы рекомендовали, я получаю следующую ошибку: ERROR Error: InvalidPipeArgument: 'Unable to convert "${year}-${month}-${day}T${hour}:${minute}:${second}" into a date' for pipe 'DatePipe'

The Dead Man 27.10.2018 12:57

используя это значение, применяете ли вы datepipe ?. Вы не можете применить строку к datepipe. Сначала преобразовать в дату (ГГГГ-ММ-ДД), затем применить трубу

Suresh Kumar Ariya 27.10.2018 13:00

вот мое репо github.com/throne1986/profile/blob/master/src/app/user-profi‌ le /…, вы можете показать мне, как конвертировать на сегодняшний день? я изо всех сил пытаюсь понять это

The Dead Man 27.10.2018 13:02

его неправильная const loctime = '$ {год} - $ {месяц} - $ {день} T $ {час}: $ {минута}: $ {секунда}'; Правильно: const loctime = ${year}-${month}-${day}T${hour}:${minute}:${second}; вместо одинарной кавычки используйте back-stick.

Suresh Kumar Ariya 27.10.2018 13:08

вместо одинарной кавычки используйте обратную палку (``)

Suresh Kumar Ariya 27.10.2018 13:10

Это работает, как и ожидалось, спасибо, братан, не могли бы вы дать ответ для справки в будущем, и я приму это

The Dead Man 27.10.2018 13:11

Позвольте нам продолжить обсуждение в чате.

The Dead Man 27.10.2018 13:11

Теперь, когда я добавляю комментарии, отображаются комментарии и дата, но после того, как дата обновления исчезла, что мне нужно изменить, чтобы сохранить данные в файл json, теперь это то, что у меня есть в файле json после отправки: { "id": 3, "localTime": null, "description": "Lorem ipsum dolor" }

The Dead Man 27.10.2018 13:26

Другие вопросы по теме