1
をリセット:form.reset()
が、私はこのディレクティブは、そのビューの値をクリアしていない、に適用されているフォームコントロールを発生した場合角度2入力指令は、フォーム上の表示値をクリアしていない私は、次のディレクティブ持っ
declare var $:any;
export const CUSTOM_INPUT_DATE_PICKER_CONTROL_VALUE_ACCESSOR: any = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => SharedAppDatePickerDirective),
multi: true
};
@Directive({
selector: '[date-picker]',
host: {'(blur)': 'onTouched($event)'},
providers: [CUSTOM_INPUT_DATE_PICKER_CONTROL_VALUE_ACCESSOR]
})
export class SharedAppDatePickerDirective implements ControlValueAccessor, OnInit {
constructor(private el: ElementRef) { }
private innerValue: string;
public onChange: any = (_) => { /*Empty*/ }
public onTouched: any =() => { /*Empty*/ }
ngOnInit() {
$(this.el.nativeElement).datepicker().on('change', e => this.onChange(e.target.value)).on('change', e => e.target.focus());
}
get value(): any {
return this.innerValue;
};
//set accessor including call the onchange callback
set value(v: any) {
if (v !== this.innerValue) {
this.innerValue = v;
this.onChange(v);
}
}
writeValue(val: string) : void {
this.innerValue = val;
}
registerOnChange(fn: any): void {
this.onChange = fn;
}
registerOnTouched(fn: any): void {
this.onTouched = fn;
}
ngOnDestroy() {
$(this.el.nativeElement).datepicker('destroy');
}
}
を。 form.reset()
の後、それは手つかずの、元々の、無効になりますが、以前入力した値を保持します。
対処方法はありますか?実行していることを修正