在阅读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()
中选择变为可用之前。