ControlValueAccessor не запускает событие изменения - PullRequest
0 голосов
/ 10 апреля 2020

Я реализовал пользовательский элемент управления, как показано ниже, но хотя я вижу печать даты из monthSelected, родительский элемент управления не получает событие изменения.

Я реализовал пользовательский элемент управления вот так

@Component({
    selector: 'app-month-picker',
    templateUrl: './month-picker.component.html',
    styleUrls: ['./month-picker.component.scss'],
    providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => MonthPickerComponent),
            multi: true
        }
    ]
})
export class MonthPickerComponent implements OnInit, ControlValueAccessor {
    private onChange: (_: Date) => void

    monthSelected(selectedDate: Date): void {
        if (this.onChange) {
            console.info(selectedDate)
            this.onChange(selectedDate)
        }
    }

    // Called when the view changes
    registerOnChange(fn: (_: Date) => void): void {
        this.onChange = fn
    }

В родительском я сделал это:

<app-month-picker (change)="onMonthSelected($event)" [(ngModel)]="selectedMonth"></app-month-picker>

Событие onMonthSelected никогда не запускается. Я также преобразовал selectedMonth в метод получения / установки, и метод также не вызывается.

Какой шаг я здесь пропустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...