2016-03-11 2 views
0

У меня есть следующий вид:Как связать ввод формы с объектом?

<form role="form" [ngFormModel]="userEditForm" (ngSubmit)="editUser(user)"> 
<div> 
    <label for="username">Username</label> 
    <input type="text" #username id="username" placeholder="Username" [ngFormControl]="userEditForm.controls['username']"> 
</div> 
<div> 
    <label for="firstName">First Name</label> 
    <input type="text" #firstName id="firstName" placeholder="First Name" [ngFormControl]="userEditForm.controls['firstName']"> 
</div> 
<div> 
    <label for="lastName">Last Name</label> 
    <input type="text" #lastName id="lastName" placeholder="Last Name" [ngFormControl]="userEditForm.controls['lastName']"> 
</div> 
<div> 
    <label for="email">Email</label> 
    <input type="text" #email id="email" placeholder="Email" [ngFormControl]="userEditForm.controls['email']"> 
</div> 
<button type="submit">Submit</button> 

И в моем компоненте я определил:

 constructor(private _routeParams:RouteParams, private _formBuilder:FormBuilder, private _UserInject:UserInject){ 
    this.userEditForm = _formBuilder.group({ 
     'firstName': [this.user.firstName], 
     'lastName': [this.user.lastName], 
     'username': [this.user.username], 
     'email': [this.user.email], 
    }) 
} 

ngOnInit(){ 
    let id = this._routeParams.get('userId'); 
    this.user = this._UserInject.getUser(id); 
} 

}

Однако это создает ошибку, потому что this.user еще не определено в конструкторе. Есть идеи?

UPDATE

Он работает, когда я использую formBuilder в ngOnInit - однако, я не уверен, что если тот правильный способ сделать это.

ответ

1

Просто переместите

this.userEditForm = _formBuilder.group({ 
    'firstName': [this.user.firstName], 
    'lastName': [this.user.lastName], 
    'username': [this.user.username], 
    'email': [this.user.email], 
}) 

после кода, где вы назначаете this.userngOnInit())

+0

это создать ли двухстороннюю привязку данных между формой и компонентом? – uksz

+0

Уверенный, Угловые проверки после каждого события, если связанные значения изменились. –

Смежные вопросы