Атрибут имени материала mat-radio-button для простой формы POST

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

Хотя я работаю с Angular 6, форма отправляется в старом стиле при отправке (без использования угловых форм)

<form method="post" action="http://api.example.com/submit" id="user_form">

   <mat-form-field>
      <input matInput placeholder="name" name="username">
   </mat-form-field>


   <mat-radio-group required>
      <mat-radio-button name="company" value="company1">company 1</mat-radio-button>
      <mat-radio-button name="company" value="company2">company 2</mat-radio-button>
   </mat-radio-group>

   <button type="submit">submit</button>

</form>

Для простоты я хотел бы сохранить это так, и я не хочу использовать какой-либо javascript для отправки этой формы (без формы на основе шаблона ИЛИ реактивной формы).

Ввод отлично работает с добавлением атрибута имени в импут, и когда я отправляю форму (нажимаю кнопку отправки), она отправляется на сервер, как ожидалось.

Что касается мат-радио, эти данные не отправляются на сервер в почтовых данных. Я предполагаю, что первый - это собственный ввод, где mat-radio-button является компонентом.

Есть ли способ заставить эту работу работать? (опять же, без обработки формы POST на стороне TS)


person ET-CS    schedule 30.12.2018    source источник
comment
Вы должны поместить атрибут [name] в группу mat-radio-group   -  person Erik van Velzen    schedule 30.12.2018
comment
@ErikvanVelzen, спасибо. но это привяжет данные к компоненту, и мне придется добавить туда также логику для публикации себя. Я пытаюсь этого избежать, так как вся форма сейчас работает без TS (рядом с этим полем).   -  person ET-CS    schedule 30.12.2018
comment
Не уверен, что вы имеете в виду. Я думаю, что никакого другого кода, кроме установки атрибута name, не требуется. Я думаю, вы можете сделать это даже без квадратных скобок, просто вставив строку напрямую.   -  person Erik van Velzen    schedule 30.12.2018
comment
@ErikvanVelzen добавление name = company прямо на ‹mat-radio-group›, похоже, не работает.   -  person ET-CS    schedule 30.12.2018


Ответы (1)


попробуйте что-нибудь вроде этого

в html

<mat-radio-group formControlName="gender">
      <mat-label>Gender:</mat-label>&nbsp;
      <mat-radio-button color="primary" value="male">Male</mat-radio-button
      >&nbsp;
      <mat-radio-button color="primary" value="female">Female</mat-radio-button>
    </mat-radio-group>

in ts

this.signupForm = new FormGroup({
      gender: new FormControl("", Validators.required),

    });
person Anil Kumar Reddy A    schedule 01.01.2019
comment
Спасибо. пожалуйста, прочтите мой вопрос. это не то, о чем я спросил. Мне нужно было решение для публикации в старом стиле без каких-либо TS. - person ET-CS; 08.01.2019