您可以在自定义表单控件中将ViewChild指定为ControlValueAccessor吗?

时间:2018-06-07 15:00:17

标签: angular angular-components angular-reactive-forms angular-forms

在阅读this blog时,我看到了以下引用:

  

通常是注册提供程序的组件或指令的类

意味着它在NG_VALUE_ACCESSOR装饰器中被指定为@Component提供程序。我很好奇任何不寻常的方式。我已经看到了直接在NgControl via:

上设置示例的示例
constructor(@Self() @Optional() private ngControl: NgControl) {
    if (this.ngControl) {
        this.ngControl.valueAccessor = this;
    }
}

但是,我想知道是否还有另一个替代方案,一个将用于我的用例......

我通过创建一个在其实现/模板中利用MatSelect的新组件来扩展'MatSelect并添加过滤机制。目前,我的组件必须作为ControlValueAccessor。是否意味着我可以提供基础MatSelect而不是?我可以通过@ViewChild访问它,但访问者要求是在ngOnChanges()中执行的,这是ngAfterViewInit()中选择变为可用之前。

0 个答案:

没有答案