хотите что-то подобное?

ы могли бы достичь в Angular 4, что при регистрации в флажке сохранить значение «A» или «B». Как бы я ни старался, он посылает мне только правду или ложь, я надеюсь, что кто-то может мне помочь.

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>

Таким образом, я могу заставить консоль показывать значение, которое я хочу (A или B), но в JSON все равно true или false.

 Saurabh Agrawal02 нояб. 2017 г., 06:32
ваш код?????????

Ответы на вопрос(7)

шаблон

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

Ts File

FieldsChange(values:any){
console.log(values.currentTarget.checked);
}
Решение Вопроса

Это то, что вы ищете:

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

Внутри вашего класса:

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

Также включите FormsModule вapp.module.ts заставить ngModel работать!

Надеюсь, это поможет!

 J. Edu03 нояб. 2017 г., 00:30
С вашим ответом я вижу, что значение изменяется в консоли («A», «B»), но я должен добавить, что в реестре я отправил JSON, agrunpando в FormGroup и FormControl, в JSON он продолжает отправлять правда или ложь, любая помощь о том, как это исправить?
 SHOHIL SETHIA03 нояб. 2017 г., 10:20
Есть ли способ, которым вы можете разобрать это? Я не могу понять твою текущую проблему!
<input type="checkbox" value="a" (click)="clicked('A')">A
<input type="checkbox" value="b" (click)="clicked('B')">B

clicked(val){
   console.log(val);
}

Вы можете использовать это:

<input type="checkbox" [checked]="record.status" (change)="changeStatus(record.id,$event)">

И в вашем файле TS,

changeStatus(id, e) {
    var status = e.target.checked;
    this.yourseverice.changeStatus(id, status).subscribe(result => {
        if (status)
            this.notify.success(this.l('AddedAsKeyPeople'));
        else
            this.notify.success(this.l('RemovedFromKeyPeople'));

    });
}

Здесь record - модель для текущей строки, а status - логическое значение.

Я предполагаю, что это то, чего вы пытаетесь достичь.

<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);
}
 AddWeb Solution Pvt Ltd02 нояб. 2017 г., 08:17
@J. Edu: Вы можете утвердить ответ, если он разрешил ваш вопрос. Спасибо,

ngModelChange:

Шаблон:

<input type="checkbox" ngModel (ngModelChange)="onChecked(obj, $event)" />

контроллер:

onChecked(obj: any, isChecked: boolean){
  console.log(obj, isChecked); // {}, true || false
}

Я предпочитаю этот метод, потому что здесь вы получаете соответствующий объект иtrue/false значения флажка.

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

<input type="checkbox" [checked]="checkbox" (change)="changed($event)" id="no"/>
 Sebastiaan30 авг. 2018 г., 09:46
Пожалуйста, не просто выведите блок кода в ответ. Хороший ответ объясняет решение и дает некоторый контекст.

Ваш ответ на вопрос