我正在尝试设置一个共享的 DatePicker 组件,以便在应用程序的不同页面上使用 .

我正在使用Angular 4并尝试使用 ngbDatepicker . 出于某种原因,当我使用此共享指令元素时,切换后的日期选择不与父组件绑定 .

选择器中从按钮更改的日期应该来自应用程序组件 . 我也尝试了 inputoutput ,但那些没有用 . 我还看了一些名为 ControlValueAccessor 的东西,效果不好 .

日期选择器,poput.ts

import {Component} from '@angular/core';
import {forwardRef} from '@angular/core';
import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';

@Component({
  selector: 'ngbd-datepicker-popup',
  templateUrl: './datepicker-popup.html',
   providers: [
    {
      provide: NG_VALUE_ACCESSOR,
      useExisting: forwardRef(() => NgbdDatepickerPopup),
      multi: true
    }
  ]
})
export class NgbdDatepickerPopup implements ControlValueAccessor{
  model;
  propagateChange = (_: any) => {};

  constructor() { }

  writeValue(obj: any): void {
    console.log('writeValue', obj);
    this.model = obj;
    //this.propagateChange(this.model);
  }

  registerOnChange(fn: any): void {
    this.propagateChange = fn;
  }

  changeMe() {
    this.propagateChange(this.model);
  }
}