现在我在很多地方使用ngx-daterangepicker-material和下面的重复代码,我想封装成独立的组件以便重用。
<div class="fx-date-range-container">
<span class="summary">Summary</span>
<input class="fx-date-range" type="text" matInput
ngxDaterangepickerMd
[locale]="{applyLabel: 'ok', format: 'MM-DD-YYYY'}"
[drops]="'down'"
[opens]="'right'"
[ranges]="ranges"
[showCustomRangeLabel]="false"
[alwaysShowCalendars]="true"
[keepCalendarOpeningWithRange]="true"
[showCancel]="true"
autocomplete="off"
[(ngModel)]="selectedDateRange"
(change)="getCampaignFXASummary()"
name="daterange"/>
<mat-icon class="icon-date-range" matSuffix>keyboard_arrow_down</mat-icon>
</div>组件名称为fx-date-range-picker。这是一个演示,我的问题是如何设置ngModel并将值传递给fx-date-range-picker组件。
也许我应该实现writeValue函数,但不确定如何编写。
发布于 2019-02-13 14:34:59
您需要实现ControlValueAccessor
请参阅有关ControlValueAccessor的angular.io文档
要实现的函数应如下所示:
export class [yourClass] implements ControlValueAccessor {
protected onChange: (value: any) => void = NOOP;
protected internalValue: number;
get value(): number {
return this.internalValue;
}
set value(value: number) {
if (value !== this.internalValue) {
this.internalValue = value;
this.onChange(value);
}
}
writeValue(value) {
this.value = value;
}
registerOnChange(fn) { this.onChange = fn; }
registerOnTouched(fn) { }祝好运!
https://stackoverflow.com/questions/54663362
复制相似问题