2016-08-18 325 views
0

我正在Ionic 2中建立一个数据驱动的表单,只有几个字段。我试图手动更新一个控件的值,当窗体的值发生变化时。但是,我收到此错误:TypeError: _this.myForm.controls.name.setValue is not a function。我曾尝试使用和不使用<FormControl>类型转换,但错误依然存在。setValue不是函数

import { Component } from '@angular/core'; 
import { FormBuilder, FormControl, FormGroup, Validators, REACTIVE_FORM_DIRECTIVES } from '@angular/forms'; 

@Component({ 
    templateUrl: 'build/pages/lead-provider/add-bp/add-bp.html', 
    directives: [REACTIVE_FORM_DIRECTIVES] 
}) 
export class AddBpPage { 
    private myForm: FormGroup; 

    constructor(private formBuilder: FormBuilder) { 
     this.myForm= formBuilder.group({ 
      'name': ['', [Validators.required]], 
      'email': ['', [Validators.required]], 
      'phone': ['', [Validators.required]] 
     }); 

     this.myForm.valueChanges.subscribe((value) => { 
      (<FormControl>this.myForm.controls['name']).setValue('abc'); 
     }); 
    } 
} 
+0

是什么'( this.myForm.controls [ '名'])'返回? AFAIK不再需要投射到“FormControl”。你使用的是什么Angular2版本? –

+0

Ionic2,rc4当前使用的版本。该转换返回一个FormControl对象 –

回答

1

setValue已于2周前加入。因此RC.4还不能包含它。

改用updateValueAndValidity()