2017-05-17 27 views
2

這裏有一個接口:雙向(雙人間)綁定在角模型驅動的反應形式

interface User { name: string; }

和反應形式:

ngOnInit() { 
 
    this.formGroup = this.fb.group({ 
 
    name: [user.name, Validators.required] 
 
    }); 
 
}
<form [formGroup]="formGroup" novalidate> 
 
    <input type="text" formControlName="name"> 
 
</form>

是否有辦法自動更新user.name的值(雙向綁定就像模板驅動的ngModel)當input字段得到更新?

回答

2

這是可能的。

首先,您需要將ReactiveFromsModule旁邊的FormsModule導入到您的項目中。

並添加[(ngModel)]="name"到HTML,它看起來像以下:

<form [formGroup]="formGroup"> 
    <input type="text" [(ngModel)]="name" formControlName="test"> 
</form> 

看到這個​​。

通過訂閱更新模型: 您可以分別訂閱formGroup valueChange並編輯您的模型。

像這樣:

this.formGroup.valueChanges.subscribe((changes) => { 
    this.submitObj = changes; 

    for(let propName in changes){ 
     this.test[propName] = changes[propName]; 
    } 
    }) 
+0

哇哦,所以它不是天生的反應形式:-( – Sammy

+0

我已經延長我的答案和更新我的plunkr樣本的支持,我希望這將有助於=) – Batajus

+0

OK。所以我假設你打電話*完全被動的方式*是另一種選擇? – Sammy