Как назначить значения для соответствующих полей при нажатии кнопки редактирования, используя primeng in angular2 - PullRequest
0 голосов
/ 04 октября 2018

У меня есть приложение, в котором я могу получить данные в формате массива.поэтому я хочу связать значения массива с соответствующим именем formcontrol.Может ли кто-нибудь помочь мне продолжить это.

HTML:

 <div formArrayName="InformationSource">
          <div class="col-sm-12 no-padd inline-block" *ngFor="let itemrow of emrMedicationdetailsForm.get('InformationSource').controls;let i = index;" [formGroupName]="i">
            <div class="col-sm-12 no-padd inline-block">
            <div class="col-sm-4 pull-left m-b10 m-t10">
              <label class="col-sm-5 pull-left col-form-label g-color-gray-dark-v2 text-sm-left no-padd">Date Time</label>
              <div class="col-sm-7 pull-left no-padd">
                <p-calendar formControlName="Date" [monthNavigator]="true" [yearNavigator]="true" yearRange="1910:2020" showButtonBar="true"
                  dateFormat="mm-dd-yy" placeholder="mm-dd-yyyy" [showIcon]="true"></p-calendar>
              </div>
            </div>
            <div class="col-sm-4 pull-left m-b10 m-t10">
              <label class="col-sm-5 pull-left col-form-label g-color-gray-dark-v2 text-sm-left no-padd">Period</label>
              <div class="col-sm-7 pull-left no-padd">
                <input type="text" formControlName="Note1" maxlength="50" placeholder="Period">
              </div>
            </div>
            <div class="col-sm-4 pull-left m-b10 m-t10">
                <a class="col-sm-2 pull-left m-b10 m-t10 delbtn" *ngIf="emrMedicationdetailsForm.get('InformationSource').controls.length >1" (click)="deleteDetails(i)">
                  <i class="fa fa-trash trash"></i>
                </a>
            </div>
          </div>
          </div>
        </div>

TS:

 private medicationFormInit() {
    //Add
    if (!this.medicationDetails) {
      this.emrMedicationdetailsForm = this.FB.group({
        InformationSource: this.FB.array([]),
      });
      this.periodNote.controls = [];
    } else {
        // edit
        InformationSource: this.medicationDetails.data.InformationSource,
      });

      for (let lang of JSON.parse(this.medicationDetails.data.InformationSource)) {
        let group = this.createMedicationInformation();
        group.get('Date').setValue(lang.Date);
        group.get('Note1').setValue(lang.Note1);
      }
    }
  }

private createMedicationInformation() {
    return this.FB.group({
      Date: [''],
      Note1: [''],
    });
  }

  public get periodNote(): FormArray {
    return <FormArray>this.emrMedicationdetailsForm.controls['InformationSource'];
  }

  addDatePeriod(): void {
    this.periodNote.push(this.createMedicationInformation());
  }

  public preventCommunicationEmpty() {
    if (!this.periodNote.length) {
      let group = this.createMedicationInformation();
      group.reset();
      this.datePeriodForm.setControl('InformationSource', this.FB.array([group]));
    }
  }

Консоль:

[{"Date":"2018-10-15T18:30:00.000Z","Note1":"34"},{"Date":"2018-10-29T18:30:00.000Z","Note1":"67"}]

Итак, яя получаю консольные данные для источника информации из бэкэнда, так что кто-нибудь может мне помочь в этом, я буквально поражен.

1 Ответ

0 голосов
/ 04 октября 2018

Можете ли вы поместить свой код в стек?Это выглядит немного грязно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...