Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angular 2 Typescript中为FormBuilder对象设置值_Javascript_Html_Angular_Typescript - Fatal编程技术网

Javascript 如何在angular 2 Typescript中为FormBuilder对象设置值

Javascript 如何在angular 2 Typescript中为FormBuilder对象设置值,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,我使用反应式表单验证(模型驱动验证),但无法在下拉更改时设置表单对象的值 这是我的Formgroup studentModel:StudenModel AMform: FormGroup; Name = new FormControl("", Validators.required); Address = new FormControl("", Validators.maxLength(16)); constructor(fb: FormBuilder){ this.AMform

我使用反应式表单验证(模型驱动验证),但无法在下拉更改时设置表单对象的值

这是我的Formgroup

studentModel:StudenModel
AMform: FormGroup;
Name = new FormControl("", Validators.required);
Address = new FormControl("", Validators.maxLength(16));

constructor(fb: FormBuilder){     
  this.AMform = fb.group({
    "Name": this.Code,
    "Address": this.Abbrev,
  });
}
onAccntChange(event: Event) {
  // set the value from Class Model
  ////  this.studentModel 
  // how to set this.studentModel value to form
}    
这是我的html页面

<form [formGroup]="AMform" (ngSubmit)="submit()">
    <select (change)="onAccntChange($event)" class="form-control" [disabled]="ddlActivity" formControlName="AccountManagerID">
        <option value="0">Select</option>
        <option *ngFor="let item of allStudent" value={{item.StudentID}}>
            {{item.Name}}
        </option>
    </select>

    <div class="col-sm-9">
        <input type="text" class="form-control" formControlName="Name">
    </div>
    <div [hidden]="Name.valid || Code.pristine" class="error"> Name is required </div>

    <div class="col-sm-9">
        <input type="text" class="form-control" formControlName="Address">
    </div>
    <div [hidden]="Address.valid || Address.pristine" class="error">Address is required </div>

    <button type="submit" class="btn btn-warning "><i class="fa fa-check-square"></i> Save</button>
</form>

挑选
{{item.Name}
名称是必需的
地址是必需的
拯救

更改时,我需要设置formcontrol值

您可以通过调用
formcontrol
对象上的
setValue
方法来实现:

  (<FormControl> this.AMform.controls['Name']).setValue("new value");

使用FormGroup对象的patchValue方法

 onAccntChange(event: Event) {
    this.AMform.patchValue({yourControl: studentModelValue})
    }

使用
setValue
您需要指定all表单控件:

this.AMform.setValue({'Name':'val1', 'Address':'val2'})
使用
patchValue
您可以指定所需的

this.AMform.patchValue({'Name':'val1'})

你可以多读一点。

你能不能请这个oneName=newformcontrol({value:'',disabled:true},[Validators.required,Validators.maxLength(10)];我想在更改时禁用false,请告诉我解决方案…您也可以使用“as”
const fc=this.AMform.controls['Name']作为FormControl;fc.设置值(“新值”)这是否回答了您的问题?
this.AMform.patchValue({'Name':'val1'})