Mat-checkbox [флажок] = «ложь» не работает - PullRequest
0 голосов
/ 10 января 2020

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

HTML

<mat-checkbox *ngIf="isReply()" class="col-2" formControlName="checkbox" [checked]="false"  >CheckBox off</mat-checkbox> 
<mat-checkbox *ngIf="!isReply()" class="col-2" formControlName="checkbox"  >CheckBox</mat-checkbox> 

materials.module.ts

addCheckbox() {
      this.checkboxForm = this.fb.group({
        'CheckBox':true,

main.module.ts

isReply(): boolean { 
  return: true;
}

Имеется переключатель, который включает и выключает функцию isReply ().

Когда я включаю isReply (), я вижу изменение ярлыка CheckBox с «CheckBox» на «CheckBox off», но состояние флажка (видимо) не меняется.

Я могу применить другие логи c, которые реагируют на то, что флажок выключен, даже если флажок все еще установлен визуально (true). Это изменяет значение флажка на false, даже если флажок по-прежнему визуально отмечен (true).

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


Я внес следующие изменения, которые по-прежнему не работают

adjust this to: 

<div class="row" *ngIf="isReply()">
 <mat-checkbox class="col-2" formControlName="checkBox" >CheckBox</mat-checkbox> 
</div>
<div class="row" *ngIf="!isReply()">
 <mat-checkbox class="col-2" [checked]='true' 
         formControlName="checkBox" >CheckBox</mat-checkbox>
</div>

В ts:

addCheckbox() {
      this.checkboxForm = this.fb.group({
        'checkBox':false,

У меня есть две радиокнопки (стандартные и Ответить).

html для переключателей:

<form [formGroup]="materials.SignatureType">
  <mat-radio-group formControlName="sigtype" >Signature Type: &nbsp;
  <label><input type="radio" value="standard" formControlName="sigtype">
  <span>&nbsp;Standard</span>
  </label>
<label><input type="radio" value="reply" (click)="setBoxes()" formControlName="sigtype" >
 <span>&nbsp;Reply</span>
 </label>
</mat-radio-group> 

Код для setBoxes ():

if (this.isReply) {
      this.materials.checkboxForm.value.checkBox = false;
    }
    else {
      this.materials.checkboxForm.value.checkBox = true;
    }

Нажатие на кнопку «ответить» изменяет значение для checkBox, но не меняет состояние кнопки.

Не могу заставить состояние кнопки изменить ДРУГОЕ, чем нажать на флажок.

Использование Angular 7.2.3 [(ngModel)] устарело.

1 Ответ

0 голосов
/ 10 января 2020

try: В вашем компоненте. html <div class="container-fluid p-5 mt-2 mb-2" > <mat-checkbox class="col-2" [checked]="var1" >CheckBox off</mat-checkbox> <mat-checkbox class="col-2" [checked]="var2" >CheckBox</mat-checkbox> </div>

В вашем файле component.ts var1 = false; var2 = true

Вам просто нужно связать свойство флажок , тогда вы можете изменить значение var1 и var2 в своей логике c.

...