Почему я не могу переместить мат-слайд-переключатель в тегах формы?

#javascript #html #angular #forms

#javascript #HTML #угловой #формы

Вопрос:

У меня есть рабочий слайд-переключатель, который работает отлично, за исключением случаев, когда я хочу изменить расположение переключателя в представлении на рядом с формой, он не работает. Как только я помещу его в тег формы, переключатель перестанет меняться при нажатии и останется false.

Я просмотрел другие примеры, но они не используют поле формы mat, как это делается в этом коде. Мне нужно поставить переключатель рядом с кнопкой отправки, но поле формы mat, похоже, не позволяет ему работать. Также я попытался добавить тот же класс в тег формы, но, похоже, это не сработало.

 <div class="container w-75 example-margin">
  <div class="row text-center mx-auto">
    <form class="form-inline row text-center mx-auto" [formGroup]="slgForm">
      <div class="form-group">
        <mat-form-field class="mr-4">
          <input matInput formControlName="year" placeholder="Year">
        </mat-form-field>
        <mat-form-field class="mr-4">
          <input matInput formControlName="quarter" placeholder="Quarter">
        </mat-form-field>

        <mat-form-field class="mr-4">
          <input matInput formControlName="week" placeholder="Week">
        </mat-form-field>

        <mat-form-field class="mr-4">
          <mat-select [(ngModel)]="selectedDepartment" formControlName="dept">
            <mat-option *ngFor="let department of departments" [value]="department">
              {{department}}
            </mat-option>
          </mat-select>
        </mat-form-field>
        <button mat-raised-button (click)="submit()">Submit</button>
      </div>
    </form>
    <div>
      <mat-slide-toggle [(ngModel)]="checked"
                        class="example-margin"
                        [color]="color"
                        (change)="changed()">
        Remove {{checked}}
      </mat-slide-toggle>
    </div>
  </div>
</div>
 

Ответ №1:

 [(ngModel)]="checked"
 

Когда вы выводите слайд-переключатель из формы, ваша модель не привязывается к форме.

Почему вы хотите поместить его за пределы формы?

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

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

2. </mat-form-field> <mat-slide-toggle class=»example-margin mr-4″ [color]=»color» formControlName=»toggle» (изменить)=»изменено()»> Удалить {{slgForm.get(‘toggle’).value}} </mat-slide-toggle>

3. Пришлось добавить его в FormController