Угловой 4. FormControlName не работает обновление

У меня есть массив форм с группами форм, которые состоят из объектов. Объекты инициализируются значениями, поэтому они отображаются в полях ввода, но также и в поле ввода. Я также заполняю значение свойства полей новыми значениями, и они также отображаются, что означает, что начальное значение объекта было изменено. Но теперь, когда я получаю свои значения элемента управления формы, я понял, что те, у которых уже были введены новые значения свойств, не заполняют formControlName, но когда я вручную изменяю значение в поле ввода, оно заполняет formControlName.

Здесь я инициализирую formValues

const transformedPurchaseOrderItems = this.purchaseOrderItemsDeliveryStatus.map(temp => {
            const purchaseOrderDeliveryStatus = new PODeliveryStatusJoined(
                                                    temp.deliveryStatusId,
                                                    temp.deliveryStatusAmountDelivered,
                                                    temp.deliveryStatusDefectedAmount,
                                                    temp.deliveryStatusDeliveredDate,
                                                    temp.deliveryStatusExpirationDate,
                                                    temp.deliveryStatusUndefectedAmount,
                                                    temp.deliveryStatusItemId,
                                                    temp.deliveryStatusIdSellingPrice,
                                                    temp.deliveryStatusAmountToRestock,
                                                    temp.restockedAmount,
                                                    temp.productName,
                                                    temp.quantity,
                                                    temp.unitPrice,
                                                    warehouseInitializedWord,
                                                    binlocationInitialize,
                                                    temp.remainingAmountToDeliver,
                                                    temp.productId);

            return this.formBuilder.group(purchaseOrderDeliveryStatus);
          });

          const purchaseOrderItemsArray = this.formBuilder.array(transformedPurchaseOrderItems);
          console.log('Testing the MIC', purchaseOrderItemsArray);
          this.setPurchaseProductItemArray(purchaseOrderItemsArray);
         });
          console.log('why' , this.undefectedAmount);
    }

     setPurchaseProductItemArray(purchaseOrderItemsArray) {
       // this.purchaseProductStatusControl.setValue(purchaseOrderItemsArray);

        this.purchaseOrderDeliveryStatusForm.setControl('purchaseProductStatus', purchaseOrderItemsArray);
        this.purchaseProductStatusControl = this.purchaseOrderDeliveryStatusForm.get('purchaseProductStatus') as FormArray;

     }

Это мой HTML

<tr *ngFor="let item of purchaseProductStatusControl.controls; let i = index;" [formGroupName]="i">
        <td>{{i+1}}</td>
        <td><input formControlName="productName" type="text" readonly></td>
        <td><input formControlName="unitPrice" type="number" readonly></td>
        <td><input #amount formControlName="quantity" type="number" [readonly]="true"></td>
        <td><input formControlName="deliveryStatusIdSellingPrice" type="number"></td>
        <td><input #amountDelivered formControlName="deliveryStatusAmountDelivered" type="number" min="0" max="{{amount.value}}"></td>
        <td><input formControlName="remainingAmountToDeliver" type="number" value="{{amount.value - amountDelivered.value}}" min="0"></td>
        <td><input #defectedAmount formControlName="deliveryStatusDefectedAmount" type="number"></td>
        <td><input #undefectedAmount formControlName="deliveryStatusUndefectedAmount" type="number" value="{{amountDelivered.value - defectedAmount.value}}" readonly></td>
        <td><input formControlName="restockedAmount" type="number" readonly></td>
        <td><input formControlName="deliveryStatusAmountToRestock" type="number" [value]="undefectedAmount.value"></td>
        <td><input formControlName="deliveryStatusDeliveredDate" type="date"></td>
        <td>

Таким образом, начальное значение для formControlName="Остаток AmountToDeliver" равно 0, но после значения вычисления ="{{amount.value - amountDelivered.value}}" оно равно 7, и 7 отображается в поле ввода, но не заполняется formControlName="Остаток AmountToDeliver", если я вручную изменить его в поле ввода

Я надеюсь, что смог объяснить. Пожалуйста, помогите мне

0 ответов

Другие вопросы по тегам