typescript - Angular 4 zmena hodnoty začiarkavacieho políčka


Ako by ste mohli dosiahnuť v Angular 4, že keď sa zaregistrujete v zaškrtávacom políčku, uloží sa hodnota „A“ alebo „B“. Koľko sa snažím, posiela mi len true alebo false, dúfam, že mi niekto môže pomôcť.

registry.component.ts

  this.userForm = new FormGroup({
   state: new FormControl('',),
  });

registry.component.html

<div class="form-group">
  <label>State</label>
  <input type="checkbox"
         [(ngModel)]="isChecked"
         (change)="checkValue(isChecked?'A':'B')"
         formControlName="state"/>
</div>  

<pre>{{userForm.value | json}}</pre>

Takto môžem spôsobiť, že konzola ukáže hodnotu, ktorú chcem (A alebo B), ale v JSON je stále true alebo false.

Odpoveď č. 1

To je to, čo hľadáte:

<input type="checkbox" [(ngModel)]="isChecked" (change)="checkValue(isChecked?'A':'B')" />

Vo vašej triede:

checkValue(event: any){
   console.log(event);
}

Zahrňte tiež FormsModule do app.module.ts, aby ngModel fungoval!

Dúfam, že to pomôže!

Odpoveď č. 2

Skús to.

Šablóna

<input (change)="fieldsChange($event)" value="angular" type="checkbox"/>

Ts súbor

fieldsChange(values:any):void {
  console.log(values.currentTarget.checked);
}

Odpoveď č. 3

changed = (evt) => {    
this.isChecked = evt.target.checked;
}

<input type="checkbox" [checked]="checkbox" (change)="changed($event)" id="no"/>

Odpoveď č. 4

Môžeme urobiť nasledovné. Používam Angular 12.

[Html]

<input type="checkbox" formControlName="lock" (change)="changeStatus($event)" />

[TS]

changeStatus(event:Event){
    const isChecked = (<HTMLInputElement>event.target).checked;
    console.log(isChecked)
}

Odpoveď č. 5

Tipujem, že toto je niečo, čo sa snažíte dosiahnuť.

<input type="checkbox" value="a" (click)="click($event)">A
<input type="checkbox" value="b" (click)="click($event)">B

click(ev){
   console.log(ev.target.defaultValue);
}

Súvisiace články