эй, по какой-то причине я не могу отправить свою форму, может кто-нибудь объяснить, почему? Я использую Angular Material.
html:
<mat-dialog-content>
<form class = "example-form"[formGroup] = "movieForm" (ngSubmit) = "addMovie(movieForm.value)">
......
<button mat-button type = "submit" [disabled] = "!movieForm.valid" [mat-dialog-close] = "true">Save</button>
<button mat-button [mat-dialog-close] = "true">Cancel</button>
</form>
</mat-dialog-content>
а это компонент:
addMovie(form) {
console.info("check");
}
Почему я не вижу console.info?
Но поскольку он в любом случае находится на стороне компонента, зачем вам передавать его в качестве аргумента?
получить значения из формы?
Возможно, ваша форма недействительна, поэтому форма не отправляется
это действительно, потому что у меня отключена кнопка, пока форма не станет действительной, и только тогда вы можете ее нажать
Ваш <form> может быть недействительным - я имею в виду элемент формы html, а не группу угловой поддержки - например. вы не связали какой-либо ввод с поддержкой formGroup, поэтому он действителен, но форма html в целом недействительна.
он работает, если удалить эту строку: [mat-dialog-close] = "true", но как тогда я могу закрыть диалоговое окно?





На самом деле вам не нужно передавать какие-либо параметры, потому что у вас уже есть ссылки movieForm в вашем component.ts. Просто сделайте следующее:
Шаблон HTML
<form (ngSubmit) = "addMovie()">
Component.ts
addMovie() {
console.info(this.movieForm);
}
Чтобы получить прямой доступ к вашим значениям, проверьте результат объекта консоли состав. Вы увидите все свойства, к которым у вас есть доступ.
спасибо за этот комментарий, но я сделал это специально, чтобы избежать большого кода, так как я использую эти значения для создания нового объекта фильма. в любом случае я исправил свою проблему, спасибо :)
console.info (форма); ???