Можете ли вы указать ViewChild в качестве ControlValueAccessor в пользовательском элементе управления формы? - PullRequest
0 голосов
/ 07 июня 2018

Читая этот блог , я натолкнулся на следующую цитату:

Обычно это класс компонента или директивы, который регистрирует провайдера

Это означает, что он указан как NG_VALUE_ACCESSOR поставщик в @Component декораторе.Мне любопытно о любых необычных способах.Я видел примеры, в которых он прямо указывался на NgControl через:

constructor(@Self() @Optional() private ngControl: NgControl) {
    if (this.ngControl) {
        this.ngControl.valueAccessor = this;
    }
}

Однако мне интересно, есть ли еще одна альтернатива, которая подойдет для моего варианта использования ...

Я «расширяю» MatSelect с добавлением механизма фильтрации путем создания нового компонента, который использует MatSelect в его реализации / шаблоне.В настоящее время мой компонент должен служить ControlValueAccessor.Значит ли это, что я могу предоставить базовый MatSelect вместо этого?Я могу получить к нему доступ через @ViewChild, однако требование доступа выполняется в ngOnChanges(), то есть до того, как выбор становится доступным в ngAfterViewInit().

...