我正在尝试设置一个共享的 DatePicker
组件,以便在应用程序的不同页面上使用 .
我正在使用Angular 4并尝试使用 ngbDatepicker
. 出于某种原因,当我使用此共享指令元素时,切换后的日期选择不与父组件绑定 .
选择器中从按钮更改的日期应该来自应用程序组件 . 我也尝试了 input
和 output
,但那些没有用 . 我还看了一些名为 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);
}
}