2016-08-18 323 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()