如何以编程方式设置Angular 2表单控件值?

时间:2016-06-15 20:22:52

标签: javascript angular

如何从代码中更改Angular 2控件?

当我这样做的时候:

control.value = "new value";

我收到以下错误:

TypeError: Cannot set property value of #<AbstractControl> which has only a getter

4 个答案:

答案 0 :(得分:8)

您可以使用updateValue方法:

control.updateValue("new value");

<强>更新

您现在可以使用setValue

control.setValue("new value");

答案 1 :(得分:2)

在您访问AbstractControl方法之前,您需要将Control转换为updateValue

(<Control>yourControl).updateValue(val);

答案 2 :(得分:1)

您需要同时使用updateValueupdateValueAndValidity来更新控件的值,并触发验证器/计算状态。

以下是一个示例:

control.updateValue("new value");
control.updateValueAndValidity();

答案 3 :(得分:1)

在Angular 2的最终版本中,.changeValue(newValue: string)方法已移除并交换为.patchValue(newValue: string)

所以你可以control.patchValue('your new value goes here');