Как заставить тумблер вести себя как радио кнопки в основном? - PullRequest
0 голосов
/ 09 июля 2019

У меня более одной кнопки-переключателя, и мне нужно сделать поведение, подобное переключателю.Я не могу использовать ngMogule.Я должен сделать это с FormControl.Проблема в том, что я не могу получить статус или значение всех кнопок за один раз, только за клик.Я думаю, я получаю эту проблему, потому что я не могу установить значение FormConttrol.Но я уже пробовал много разных вариантов, и я до сих пор не получил его.У кого-нибудь есть идеи, как это сделать?

это дочерний компонент, который я использую child.html

<p-toggleButton
    onIcon="pi pi-times"
    offIcon="pi pi-info" 
    [onLabel]="onLabel" 
    offLabel=""
    [(ngModel)]="check" 
    [tabindex]="infoText"
    (onChange)="onChange()"></p-toggleButton>

child.ts

@Input()
 infoText: string;
 @Input()
 control: FormControl = new FormControl(this.infoText);
 @Output()
 public onNewEntryAdded = new EventEmitter();
 constructor() {
    console.log(this.control);
   //if I call hier first time I get all forms but without values
 }
 onChange() {
   this.onNewEntryAdded.emit({
      value: this.check
    })
 }

это родительский компонент child.html

 <app-infoicon class="col-1" [onLabel]="notiz" [infoText]="info" #test 
    name="control" [control]="control" 
    (onNewEntryAdded)="addNewEntry($e, test)" ></app-infoicon>
    <app-infoicon class="col-1" [onLabel]="notiz" [infoText]="'2'" #test2
    name="control" [control]="control" 
    (onNewEntryAdded)="addNewEntry($e, test2)" ></app-infoicon>

child.ts

control: FormControl = new FormControl('');

  addNewEntry(e, control){
   if (false) {
      control.checked = false;
    } else {
      this.infoButton = e.checked;
    }
  }

Я пробовал также

 [control]="control.setValue('1')"

 [formControlName]="control" value="1"
...