我有一个使用表单生成器(Angular2 Beta 1,TypoScript)创建的表单,即:有这样的东西constructor
:
this.form = this._formBuilder.group({
'username': ['', Validators.required],
'email': ['', Validators.required]
});
表格出现了,到目前为止一切都很好。我真正没有得到的是当我从远程服务(或其他一些异步加载机制)加载数据(在本例中:用户对象)时如何处理绑定。
我尝试过的是:
constructor
在或中异步加载数据ngOnInit
。问题:甚至在加载开始之前引发异常(“无法读取未定义的属性'validator'......”)constructor
在or中异步加载数据ngOnInit
,但在此之前创建一个空表单。问题:验证不起作用。- 我期望的工作:将表单数据绑定到
User
对象的属性,并设置该对象的属性。问题:也不例外,但是表格中没有显示数据。
我想必须有一些更聪明/更好的方法来让它工作?我对 Angular2 比较陌生,所以我希望这个问题不会太愚蠢……</p>
- - 更新 - -
首先,我忘了提及我ngFormModel
在表格中使用的内容——以防万一它很重要。
@Thierry:我认为“与表单绑定的临时空对象”是我尝试做的(上面提到的第三种方法),但没有奏效。准确地说,我试过这个:
constructor(private _formBuilder:FormBuilder) {
this.user = new User;
this.user.username = 'abc';
this.form = this._formBuilder.group({
'username': [this.user.username, Validators.required],
});
}
这显示了用户名,但是当我将设置到构造函数末尾的行移动时它甚至不起作用this.user.username
——我觉得这很令人惊讶,因为我希望数据绑定来处理这个问题。