Угловая привязка 2+ для привязки флажка (mat-checkbox) Значение углового материала от True или False до значений char 'T', 'F' - PullRequest
0 голосов
/ 01 июня 2018

Нужна помощь в попытке изменить значение моего углового материала флажка (mat-checkbox) на значение, такое как 'T' и 'F', которое может быть передано при отправке моей формы с моим объектом json.Это 'T' или 'F' из объекта JSON переворачивает флаг char на моем бэкэнде.Буду признателен за любую помощь, не уверен, почему я не могу понять это.

----- HTML ------------

<div class="form-check">
  <label class="form-check-label" style="padding-right: 10px;">Send to MIP</label>
  <mat-checkbox name="mip" [ngModel]="mip"  class="form-check-input" #mip="ngModel"></mat-checkbox>
</div>

------ текущее значение ----

{ "mip": true } 

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Вы не привязываете изменения пользовательского интерфейса флажка к вашей модели.[ngModel] просто связывает изменения модели с пользовательским интерфейсом / представлением.Используйте [(ngModel)] для двусторонней привязки или добавьте (ngModelChange) для привязки вида к модели.Чтобы он обрабатывал «T» и «F», реализуйте геттер и сеттер:

<mat-checkbox [(ngModel)]="mip">Check me!</mat-checkbox>

get mip():boolean {
  return this._mip === "T";
}
set mip(value: boolean) {
  if(value) {
    this._mip = "T";
  } else {
    this._mip = "F";
  }
}
_mip: string = "T";

или

<mat-checkbox #cb [ngModel]="getMip()" (ngModelChange)="setMip(cb.checked)">Check me!</mat-checkbox>

getMip():boolean {
  return this._mip === "T";
}
setMip(value: boolean) {
  if(value) {
    this._mip = "T";
  } else {
    this._mip = "F";
  }
}
_mip: string = "T"
0 голосов
/ 01 июня 2018

Вы можете иметь только логическое значение для флажка, в качестве обходного пути вы можете использовать, когда вы отправляете форму, и в методе, где вы слушаете отправку формы, вы можете использовать троичный оператор для назначения 'T' или 'F».Например, если у вас есть formData как:

formData = {
    "mip" : true
}

, используйте:

(formData['mip']===true) ? formData['mip'] = 'T' : formData['mip] = 'F'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...