Создать шаблон на основе формы в Angular - PullRequest
1 голос
/ 30 января 2020

Я пытался создать форму в Angular, но у меня есть некоторые проблемы, когда я хочу получить доступ к значениям из формы в моем компоненте.

Моя форма выглядит следующим образом:

<div class="col-md-6">
  <form #createTaskForm="ngForm" (ngSubmit)="saveTask(createTaskForm.value)" autocomplete="off" novalidate>
    <div class="form-group">
      <label for="taskDescription">Task Description:</label>
      <input [(ngModel)]="task.description" name="taskDescription" required id="taskDescription" type="text" class="form-control" placeholder="Description..." />
    </div>
    <div class="form-group">
      <label for="taskDate">Date:</label>
      <input [(ngModel)]="task.date" name="taskDate" required id="taskDate" type="text" class="form-control" placeholder="(mm/dd/yyyy)..." />
    </div>

    <button type="submit" class="btn btn-primary">Save</button>
    <button type="button" class="btn btn-success" (click)="cancel()">Cancel</button>
  </form>
</div>

И это компонент:

export class CreateTaskComponent implements OnInit {

  task: Task;

  constructor(
    private router: Router,
    private taskService: TaskService) { }

  ngOnInit() {
  }

  saveTask(valuesFromForm) {
    console.log(valuesFromForm);
    this.taskService.save(valuesFromForm);
    this.router.navigate(['/tasks']);
  }

  cancel() {
    this.router.navigate(['/tasks']);
  }
}

И я получаю эту ошибку, когда хочу увидеть значения из формы :

ERROR TypeError: Cannot read property 'description' of undefined

1 Ответ

1 голос
/ 03 февраля 2020

это ошибка JavaScript, а не angular, упростите любое свойство, у которого нет значения, которое считается неопределенным, и доступ к свойству неопределенного значения вызовет эту ошибку.

ERROR TypeError: Cannot read property 'description' of undefined

чтобы решить проблему, просто инициализируйте ваше свойство с экземпляром класса Task

task: Task = new Task()
...