Angular2 - 自定义控件验证器匹配错误的嵌套控件

Angular2 - custom control validator matching wrong nested control

我在验证我的自定义模板驱动表单控件时遇到奇怪的问题。我想要的只是一个 "required" 验证器。 id 听起来很简单,但是我想了几个小时都没有成功。

我的控件是另一个第 3 方自动完成组件的 "simple" 包装器。我想根据需要标记整个组件。这意味着必须定义它的值而不是 null。但是,如果我将所需的指令放在控件上,即

<my-control ... required></my-control>

所需的验证器验证嵌套自动完成控件中某处文本输入的内容。如果我绑定控件的值 (ngModel),我会得到正确的值。但是验证器没有反映这个值。

我也尝试编写自己的自定义验证器。结果是一样的。如果我观察传递给验证器的 FormControl 的值 属性,我可以看到当前写入文本输入的值嵌套在更深的地方。

我得到了我所缺少的 - Component 装饰器的 providers 部分内的 ValueAccessor 配置。据我所知,绑定会使用此配置获取第一个值访问器。我的那个不见了所以它更深入地挖掘并匹配绑定到自动完成输入的那个。