如何从代码中更改Angular 2控件?
当我这样做的时候:
control.value = "new value";
我收到以下错误:
TypeError: Cannot set property value of #<AbstractControl> which has only a getter
答案 0 :(得分:8)
您可以使用updateValue
方法:
control.updateValue("new value");
<强>更新强>
您现在可以使用setValue
:
control.setValue("new value");
答案 1 :(得分:2)
在您访问AbstractControl
方法之前,您需要将Control
转换为updateValue
:
(<Control>yourControl).updateValue(val);
答案 2 :(得分:1)
您需要同时使用updateValue
和updateValueAndValidity
来更新控件的值,并触发验证器/计算状态。
以下是一个示例:
control.updateValue("new value");
control.updateValueAndValidity();
答案 3 :(得分:1)
在Angular 2的最终版本中,.changeValue(newValue: string)
方法已移除并交换为.patchValue(newValue: string)
所以你可以control.patchValue('your new value goes here');