使用FormBuilder在Angular 2中从异步调用设置默认表单对象值

时间:2016-11-15 22:24:55

标签: angular angular2-formbuilder

我正在使用"@angular/forms": "~2.1.0""angular-cli": "1.0.0-beta.19-3"并尝试设置FormGroup的默认值campaignForm){{1我已经进行异步调用以获取campaign_config_id列表之后的属性。

我已尝试按照其他建议使用以下内容,但我得到了campaignConfigs

TypeError: _this.campaignForm.controls.campaign_config_id.updateValue is not a function

我还尝试将this.campaignConfigService.getCampaignConfigs() .subscribe( campaignConfigs => { ... this.campaignForm.controls['campaign_config_id'].updateValue(campaignConfigs[0].id) } ); 投射到this.campaignForm.controls['campaign_config_id']NgControlFormControl和其他对象中,但没有一个具有SelectControlValueAccessor功能

有关如何做到这一点的任何建议吗?

2 个答案:

答案 0 :(得分:5)

我认为处理表单最灵活的方法是使用“ReactiveForms”并使用FormBuilder类创建表单。

请研究反应形式和FormGroup / FormBuilder,最后你可以这样做:this.form.controls['campaign_config_id'].setValue(yourIdValue)

答案 1 :(得分:4)

updateValue()已弃用。使用setValue()代替所有类型的表单控件。