Я пытаюсь обернуть элемент управления вводом в свой собственный компонент.Чтобы сделать проверку / ngmodel работающей, я использую ControlValueAccessor для перенаправления в DefaultValueAccessor:
import { Component, OnInit, Input, ViewChild, forwardRef } from '@angular/core';
import { ControlValueAccessor, DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
@Component({
selector: 'mp-inputtest',
template: '<input ngDefaultControl/>',
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => InputtestComponent),
multi: true,
},
]
})
export class InputtestComponent implements OnInit, ControlValueAccessor {
@ViewChild(DefaultValueAccessor) private valueAccessor: DefaultValueAccessor;
writeValue(obj: any) { this.valueAccessor.writeValue(obj);}
registerOnChange(fn: any) { this.valueAccessor.registerOnChange(fn);}
registerOnTouched(fn: any) { this.valueAccessor.registerOnTouched(fn);}
setDisabledState(isDisabled: boolean) { this.valueAccessor.setDisabledState(isDisabled);}
}
Это прекрасно работает, когда компонент находится в основном проекте.Но при перемещении его в угловую библиотеку директива больше не применяется.Он успешно компилируется, но не может найти ViewChild.Чего мне не хватает?
С уважением, Торстен