Пытаюсь разобраться с control value accessor и набросал простейший пример. В каждой функции поставил консоль лог чтобы посмотреть в какой именно момент она срабатывает.
Проблема в том, что ни одна из этих функций не срабатывает. Хотя при этом ошибок в консоли нет. И вообще я реализовал интерфейс control value accessor поэтому должно хоть что-то происходить
Помогите пожалуйста оживать пример. Демо здесь
js:
name: FormGroup;
constructor(fb: FormBuilder) {
this.name = fb.group({
firstName:['1'],
lastName: ['22']
});
}
writeValue(value: any) {
console.log('writeValue', value);
if(value) {
this.name.setValue(value);
}
}
registerOnChange(fn: (value: any) => void) {
console.log('registerOnChange');
this.name.valueChanges.subscribe(fn);
}
registerOnTouched() {
console.log('registerOnTouched');
}
html:
<div [formGroup]="name">
<input formControlName="firstName">
<input formControlName="lastName">
</div>
control value accessor
используется для реализации ngModel
в кастомном компоненте. Потому ваша в данный момент и не работает. Вот пример реализации control value accessor
:
@Component({
selector: 'app-custom-component',
templateUrl: './app-custom.component.html',
styleUrls: ['./app-custom.component.scss'],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => CustomComponent),
multi: true
}
]
})
export class CustomComponent implements ControlValueAccessor {
private _begin: Date;
set begin(value) {
this._begin = value;
this.onChange(this._begin);
}
get begin() {
return this._begin;
}
onChange = (_: any) => { };
OnTouched = (_: any) => { };
constructor() { }
writeValue(value: Date): void {
this.begin = value;
}
registerOnChange(fn: any): void {
this.onChange= fn;
}
registerOnTouched(fn: any): void {
this.onTouched= fn;
}
setDisabledState?(isDisabled: boolean): void {
/*реализация для свойства disabled*/
}
}
В разметке компоненты:
<input type="date" [(ngModel)]="begin" name="begin">
Непосредственное использование:
<app-custom-component [(ngModel)]="currentDate"></app-custom-component>
В компоненте объявить свойство currentDate
Как то так.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется обычный шаблон bootstrap с использованием html/css/jsНужно по типу CMS пополнять раздел новости с сохранением дизайна сайта
Как можно настроить просмотр видео онлайн с кем-то как на watch2gether или подобных сервисах? Использовал webrtc (https://webrtcgithub