2
this.myForm = fb.group({
         name: ['', [Validators.required, Validators.minLength(2)]],
         date: ['', [Validators.required, Validators.minLength(2)]],
         address: ['', [Validators.required, Validators.minLength(2)]],
        ,
         items: fb.array([
             this.initItem(),
         ])
     });

initItem() {
  return this.fb.group({
      item: [''],
      itemType: [''],
      amount: [''],
      presentRate:this.myForm,
      total:['']
  });

フォームを送信すると、この項目のプロパティはオブジェクトによって保存されます。オブジェクトの例:

item{
  itemName:"name",
  itemRate:1000,...}

item オブジェクトのプロパティを使用して、initItem() メソッドのプロパティの値にパッチを適用するにはどうすればよいですか?私のシナリオは、ユーザーがドロップダウンから値を選択すると、アイテムが更新され、から取得した値を表示したいというようなものです。 item in other formControls。例:

<div *ngFor="let item of myForm.controls.items.controls; let i=index">
           <div [formGroupName]="i">
             <md2-autocomplete [items]="products"
                       item-text="product"
                       (change)="handleChange($event)"
                       placeholder="Product purchased"
                       formControlName="item"
                       >
             </md2-autocomplete>
             <md-input-container >
               <input md-input placeholder="Present rate" [value]="presentRate" formControlName="presentRate"  >
             </md-input-container>

presentRate 入力ボックスの値を自動的に更新したいと思います。

4

2 に答える 2

4

フォーム コントロールをサブスクライブして、別valueChangesのフォーム コントロールを呼び出すことができますsetValue

this.myForm.get('myControlName').valueChanges
.subscribe(val => 
  this.myForm.get('myOtherControlName').setValue(val)
);
于 2017-02-13T06:59:53.953 に答える