Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Angular 自定义表单控件中的角度字段获得延迟更新_Angular_Angular Reactive Forms - Fatal编程技术网

Angular 自定义表单控件中的角度字段获得延迟更新

Angular 自定义表单控件中的角度字段获得延迟更新,angular,angular-reactive-forms,Angular,Angular Reactive Forms,我有一个自定义的角度输入字段。我的自定义控件有一个@Input(),它绑定到输入字段的值。当我尝试在表单中使用它时,我可以看到正在调用writeValue,但是新值在我再次调用writeValue之前不会显示。正常输入字段不执行此操作。知道我做错了什么吗 我的控件的HTML(vdsfield.component.HTML): 当我更改模型时,可以看到正在通过console.log使用新值调用writeValue,但内部控件不会更新。当我再次设置该值时,将绘制上一个值。如果我在表单中使用普通字段而

我有一个自定义的角度输入字段。我的自定义控件有一个@Input(),它绑定到输入字段的值。当我尝试在表单中使用它时,我可以看到正在调用writeValue,但是新值在我再次调用writeValue之前不会显示。正常输入字段不执行此操作。知道我做错了什么吗

我的控件的HTML(vdsfield.component.HTML):

当我更改模型时,可以看到正在通过console.log使用新值调用writeValue,但内部控件不会更新。当我再次设置该值时,将绘制上一个值。如果我在表单中使用普通字段而不是自定义控件,它不会这样做

提前谢谢

在最后一个位置调用handleFieldChange函数

使用此代码块

<input [type]="inputType" [disabled]="disabled"
   [placeholder]="placeholder"
   [value]="value" 
   (input)="handleFieldChange($event)" />
<span *ngIf="error" class="error-icon"><span>!</span></span>

!
而不是

<input (input)="handleFieldChange($event)"
   [type]="inputType" [disabled]="disabled"
   [placeholder]="placeholder"
   [value]="value"/>
<span *ngIf="error" class="error-icon"><span>!</span></span>

!

听起来像是变化检测问题,这在角形表单中很常见,在角形表单中,您常常感觉自己在与单向数据流作斗争。你能把它放在闪电战中吗?
<input [type]="inputType" [disabled]="disabled"
   [placeholder]="placeholder"
   [value]="value" 
   (input)="handleFieldChange($event)" />
<span *ngIf="error" class="error-icon"><span>!</span></span>
<input (input)="handleFieldChange($event)"
   [type]="inputType" [disabled]="disabled"
   [placeholder]="placeholder"
   [value]="value"/>
<span *ngIf="error" class="error-icon"><span>!</span></span>