首页 > 解决方案 > 如何提供另一个控制值访问器?

问题描述

我已经有了一个实现ControlValueAccessor接口的指令(指令的选择器是input[type=date]),我需要另一个ControlValueAccessor用选择器实现的指令input[type=date][datepicker]——我们称之为 datepicker 指令。

如您所见,这些指令的选择器相互覆盖,当我使用 datepicker 指令时出现以下错误:

ERROR Error: Uncaught (in promise): Error: More than one custom value accessor matches form control with unspecified name attribute

错误在那里抛出:https ://github.com/angular/angular/blob/5.2.x/packages/forms/src/directives/shared.ts#L206

所以我有一个想法,也许我可以以某种方式告诉 angular 在可能的情况下提供 datepicker 指令,但是该怎么做呢?

标签: angulartypescriptangular-directiveangular-di

解决方案


为什么不简单地使用选择器?

第一个是

input[type=date]:not([datepicker])

还有第二个

input[type=date][datepicker]

推荐阅读