当前位置: 首页 > 知识库问答 >
问题:

手动设置FormBuilder控件的值

麻鸿熙
2023-03-14

这让我快发疯了,我受够了,不能再花一整天在这上面了。

我试图在组件中手动设置一个控制值('dept'),但它不起作用——甚至新值也会正确地记录到控制台中。

以下是FormBuilder实例:

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

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

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;
}

现在,当表单提交后,我将退出此操作。表单该字段仍然为空!我见过其他ppl使用updateValue(),但这是测试版。1,我不认为这是调用控件的有效方法

我还尝试调用updateValueAndValality(),但没有成功:(。

我只会在表单元素上使用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>

共有3个答案

戚飞雨
2023-03-14

Angular 2 final更新了API。他们为此增加了许多方法。

要从控制器更新表单控件,请执行以下操作:

this.form.controls['dept'].setValue(selected.id);

this.form.controls['dept'].patchValue(selected.id);

无需重置错误

参考文献

https://angular.io/docs/ts/latest/api/forms/index/FormControl-class.html

https://toddmotto.com/angular-2-form-controls-patch-value-set-value

何承
2023-03-14

在Angular 2 Final(RC5)中,有用于更新表单值的新API。patchValue()API方法支持部分表单更新,我们只需要指定一些字段:

this.form.patchValue({id: selected.id})

还有一个setValue()API方法需要一个包含所有表单字段的对象。如果缺少一个字段,我们将得到一个错误。

李昊苍
2023-03-14

更新日期:2017年3月19日

this.form.controls['dept'].setValue(selected.id);

旧:

目前,我们被迫进行类型转换:

(<Control>this.form.controls['dept']).updateValue(selected.id)

不太优雅,我同意。希望在将来的版本中得到改进。

 类似资料:
  • 我有一个表单,其中有些字段不是模型的字段。在发送到渲染之前,我想在我的视图中填充它们.. 我的表格: 我的视图代码: 谢啦

  • 我有一个单窗口JavaFX应用程序,它是从JavaFX教程中创建的。 我正在通过以下功能设置新窗口内容: 但是我想从这个fxml文件中选择一个默认激活的文本字段。如何做到这一点?我尝试在控制器的初始化方法中调用requestFocus方法,但没有成功。我在TextField类和AnchorPane类中都没有找到任何合适的属性(AnchorPane是fxml控件树的根元素)。

  • FormBuilder 是一个 PHP 类用来创建各种丰富的 HTML 表单。通过 jQuery/jQuery UI 支持 Ajax,支持 Google 地图、验证码,以及使用TinyMCE和CKEditor的可视化编辑器。

  • 问题内容: 我想将用户持久保存到数据库中,并使用IDENTITY生成类型创建的User的ID(PK)的当前方案。例如 但我想在以下情况下进行操作:1)用户明确设置。2)如果未设置用户,则将自动分配它,并且它必须是唯一的。 请建议我一些可用的选项,以便我解决。谢谢。 问题答案: 您可以为此目的定义您的自定义ID生成器,如本SOAnswer中指出的那样 它的代码如下所示: 和

  • 问题内容: 我已经使用Xcode 11,Beta 5为iOS 13手动设置了根视图控制器。在部署信息中删除了对main的引用,包括在info.plist中删除了对main的引用,而我从未发现自己必须在iOS 13之前做。窗口在SceneDelegate中完成,嵌套在willConnectTo函数中。通常,如果我错过了某个步骤,该应用程序将崩溃。现在,我得到了一个空白的黑屏,而不是看到我的视图控制器