实现一个ControlValueAccessor,但它不会将值传播到表格
问题描述:
我正在使用Angular上的反应式表单,但我在从自定义组件传播对表单的更改时遇到麻烦。实现一个ControlValueAccessor,但它不会将值传播到表格
例如,您可以在plunkr中看到用flatpickr制作的日期输入组件。
https://plnkr.co/edit/okIjPb6aUcrzx3t7edae?p=info
你可以看到这一段代码特别,当它设置属性日期应该外面传播变化的形式,但没有,形式不被更新。
还有在plunkr,这与角本土赛事工作的计数器输入例子,它完美的作品。
但在日期输入,它使用自定义事件(我认为)它不起作用。
我认为解决方案与旧的Angularjs中的旧applyAsync类似,但Angular承诺通过使用区域来解决这些问题,所以我不清楚这些问题。我想要解决这个问题。
答
你忘了你的控件绑定到你的FormGroup
:
<date-input [date]="date" formControlName="date"></date-input>
^^^^^^^^^^^^^^^^^^^
add this
你可能会发现这篇文章有帮助(HTTPS [从不在角形式实施ControlValueAccessor时再次困惑]:// blog.angularindepth.com/never-again-be-confused-when-implementing-controlvalueaccessor-in-angular-forms-93b9eee9ee83) –