相关疑难解决方法(0)

手动设置FormBuilder控件的值

这让我疯了,我在枪下,无法再花上一整天的时间.

我试图在组件中手动设置一个控制值('dept'),它只是不工作 - 甚至新值记录到控制台正常.

这是FormBuilder实例:

initForm() {
  this.form = this.fb.group({
    'name': ['', Validators.required],
    'dept': ['', Validators.required],
    'description': ['', Validators.required],
  });
}
Run Code Online (Sandbox Code Playgroud)

这是接收选定部门的事件处理程序:

deptSelected(selected: { id: string; text: string }) {
  console.log(selected) // Shows proper selection!

  // This is how I am trying to set the value
  this.form.controls['dept'].value = selected.id;
}
Run Code Online (Sandbox Code Playgroud)

现在,当表单提交并且我注销时,this.form该字段仍然是空白的!我已经看过其他用户,updateValue()但这是beta.1,我不认为这是调用控件的有效方法.

我也试图打电话updateValueAndValidity()没有成功:(.

我只是ngControl="dept"在表单元素上使用,就像我正在使用表单的其余部分,但它是一个自定义指令/组件.

<ng-select
  [data]="dept"
  [multiple]="false"
  [items]="depts"
  (selected)="deptSelected($event)" <!-- This is how the value gets to me -->
  [placeholder]="'No Dept Selected'"></ng-select>
Run Code Online (Sandbox Code Playgroud)

forms components angular

142
推荐指数
9
解决办法
19万
查看次数

标签 统计

angular ×1

components ×1

forms ×1