Как назначить значения в словаре из группы форм через цикл? - PullRequest
0 голосов
/ 22 октября 2019

Я разрабатываю мобильное приложение, которое отправляет запрос в REST api, однако данные, которые необходимо передать, должны быть в формате dictionary . Таким образом, я придумал создать пустой формат словаря, как этот;

my_dict= { key_1: '', key_2: '', key_3: '', key_4: '', key_5: '', key_6: ''};

И я добавляю значение к каждому соответствующему ключу с помощью:

this.my_dict.key_1= this.my_form.value.value_1;
this.my_dict.key_2= this.my_form.value.value_2;
this.my_dict.key_3= this.my_form.value.value_3;
this.my_dict.key_4= this.my_form.value.value_4;
this.my_dict.key_5= this.my_form.value.value_5;
this.my_dict.key_6= this.my_form.value.value_6;

Я присваиваю значение из FormGroup . Я получаю доступ к каждому FormControl через this.<form>.value.<form_control_name>. Пример: this.my_form.value.value_1

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

Это вся форма

<!-- Transportation Form -->
      <form [formGroup]="transpo_form" #f="ngForm">

        <!-- Form Item 1 (Description) -->
        <ion-item>
          <ion-input placeholder="Description (Optional)" type="text" formControlName="description" clearInput></ion-input>
        </ion-item>

        <!-- Form Item 2 (Location) -->
        <ion-item>
          <ion-input placeholder="Location" formControlName="location" required clearInput ></ion-input>
        </ion-item>
        <!-- Throw an error if field is invalid -->
        <div *ngIf="!transpo_form.controls.location.valid  && (transpo_form.controls.location.dirty || submit_attempt)" class="validator-error">
          * This field is required
        </div>

        <!-- Form Item 3 (Vehicle Type) -->
        <ion-item>
            <ion-label>Vehicle Type</ion-label>
            <ion-select value="notifications" interface="action-sheet" formControlName="vehicle" required>
              <ion-select-option>Tricycle</ion-select-option>
              <ion-select-option>Bus</ion-select-option>
              <ion-select-option selected>Jeepney</ion-select-option>
              <ion-select-option>Taxi</ion-select-option>
              <ion-select-option>Tricycle</ion-select-option>
              <ion-select-option>Train</ion-select-option>
            </ion-select>
        </ion-item>
        <!-- Throw an error if field is invalid -->
        <div *ngIf="!transpo_form.controls.vehicle.valid  && (transpo_form.controls.vehicle.dirty || submit_attempt)" class="validator-error">
          * This field is required
        </div>
        <ion-item-divider></ion-item-divider>
        <ion-item>
          <ion-label>Arrival Date</ion-label>
          <ion-datetime placeholder="Select Date" formControlName="arrival_date" required></ion-datetime>
        </ion-item>
        <div *ngIf="!transpo_form.controls.arrival_date.valid  && (transpo_form.controls.arrival_date.dirty || submit_attempt)" class="validator-error">
            * This field is required
        </div>
        <ion-item>
          <ion-label>Arrival Time</ion-label>
          <ion-datetime display-format="h:mm A" picker-format="h:mm A" placeholder="Select Time" formControlName="arrival_time" required></ion-datetime>
        </ion-item>
        <div *ngIf="!transpo_form.controls.arrival_time.valid  && (transpo_form.controls.arrival_time.dirty || submit_attempt)" class="validator-error">
            * This field is required
        </div>
        <ion-item>
            <ion-input type="number" placeholder="Cost" formControlName="cost" required></ion-input>
        </ion-item>
        <div *ngIf="!transpo_form.controls.cost.valid  && (transpo_form.controls.cost.dirty || submit_attempt)" class="validator-error">
            * This field is required
        </div>
        <div class="submit-button">
            <ion-button color="success" expand="block" (click)="submit()">Add to my expenses</ion-button>
        </div>
      </form>

Примечание: Извините за вопрос нуб, потому что яНа самом деле я новичок в Ionic 4 с AngularJS в качестве бэкэнда, и я не могу найти для этого полезное руководство.

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