2016-11-04 3 views
-4

私のangular2コードでは、フォームの値を更新したいが、私のクリック機能は動作していない。私のangular2コードで私はフォームの値を更新したいが、私のクリック機能は動作していない

<div *ngIf="payLoad" class="form-row">  
    <li (click)="select()">{{payLoad}}</li> 
</div> 

と私の主なコンポーネントは次のとおりです:

私のコードがあるAngular2で

select(payLoad) {  
    this.form.value.external_id=payLoad; 
}  

onSubmit() { 
    if (this.form.valid) { 
     for(let fm in this.form.value) { 
      if(fm == 'external_id') { 
       this.payLoad=this.form.value.external_id; 
      } 
      if(fm == 'lastname') { 
       this.payLoad1=this.form.value.lastname; 
      } 
      if(fm == 'email') { 
       this.payLoad2=this.form.value.email; 
      } 
      if(fm == 'gender') { 
       this.payLoad3=this.form.value.gender; 
      } 
      if(fm=='brave'){ 
       this.payLoad4=this.form.value.brave; 
      } 
      if(fm=='role') { 
       this.payLoad5=this.form.value.role; 
      } 
      if(fm=='status') { 
       this.payLoad6=this.form.value.status;   
      }  
     }    
    }  
} 
+6

ようこそ私たちは、混乱を一掃してくださいここではいくつかの品質を維持しようと、あなたの問題のコードが読めない –

+2

読みください。。。。[どのように私は私のコードをフォーマットしますブロック?](http://meta.stackoverflow.com/questions/251361/how-do-i-forマットマイコードブロック) – cartant

答えて

0

FormGroup sが唯一.valueを通じてその値を公開し、あなたはそれを介してFormGroupの値を更新することはできません。 .setValue(value)または.patchValue(value)のいずれかを使用する必要があります。

  • 使用.setValue(value)使用すると、1つのオブジェクトを使用して、グループ全体の値を設定したい場合は(それはあなたのFormGroupのスキーマと一致しなければなりませんが。
  • 使用.patchValue(value)あなたは部分を使用して、グループの値のサブセットのみを設定する場合。のStackOverflowの対象FormGroupのスキーマに一致する
関連する問題