Компонент Dynami c не работает с formarray angular - PullRequest
0 голосов
/ 11 апреля 2020

Я создаю конструктор форм, как этот https://stackblitz.com/edit/angular-dynamic-survey-creation-golkhg?file=src%2Fapp%2Fcreate-survey%2Fcreate-survey.component.html Я делаю именно так, но я не использую дизайн материала, и эта часть не работает

<div *ngIf="questionCtrl.controls.questionGroup.controls.options">
                          <ul class="question-type" formArrayName="options">
                            <li
                              *ngFor="let optionCtrl of questionCtrl.controls.questionGroup.controls.options.controls let j = index">
                              <div [formGroupName]="j">
                                <mat-form-field>
                                  <input formControlName="optionText" matInput placeholder="option text" maxlength="100"
                              [required]="true">
                          </mat-form-field>
                                  <button mat-raised-button *ngIf="j>=2" (click)="removeOption(i,j)" color="warn">
                             X
                            </button>
                              </div>
                            </li>
                          </ul>
                          <button mat-raised-button type="button" (click)="addOption(i)" class="mat-sm-button add-option-btn" color="accent"> Add option</button>
                        </div>
                        <div
                          *ngIf="questionCtrl.controls.questionGroup.controls.showRemarksBox">
                          <mat-slide-toggle formControlName="showRemarksBox">
                            Show Remarks Textarea
                          </mat-slide-toggle>
                          <mat-form-field class="full-width">
                            <textarea  style="resize: none;" disabled  matInput placeholder="Textarea"></textarea>
                          </mat-form-field>
                        </div> 

мой код как это

<div *ngSwitchCase="'Kotak Centang'">
                                            <div *ngIf="questionCtrl.controls.questionGroup.controls.options">
                                                <ul formArrayName="options  ">
                                                    <li
                                                        *ngFor="let optionCtrl of questionCtrl.controls.questionGroup.controls.options let j = index">
                                                        <div [formGroupName]="j">
                                                            <input formControlName="optionText" matInput
                                                                placeholder="option text" maxlength="100"
                                                                [required]="true">
                                                            <button *ngIf="j>=2" (click)="removeOption(i,j)"
                                                                color="warn">X
                                                            </button>
                                                        </div>
                                                    </li>
                                                </ul>
                                                <button nbButton type="button" (click)="addOption(i)"
                                                    class="mat-sm-button add-option-btn" color="accent"> Add
                                                    option</button>
                                            </div>
                                        </div>

1 Ответ

0 голосов
/ 11 апреля 2020

Оказывается, значение для использования в переключателе ng не работает должным образом, я исправил это с помощью [(value)] вместо [(selected)] при выборе ngswitch

...