Tôi đang cố tạo Chỉ thị Angular 2 của riêng mình cho Jquery UI Datepicker. Tôi đã nhìn thấy một số cách tiếp cận khác nhau trên internet và trong SO là tốt, nhưng không ai đạt được mục tiêu mà tôi muốn. Vì vậy, đây là đoạn code mà tôi có cho đến nay:Góc 2 Thực hiện chỉ thị ControlValueAccessor không cập nhật thuộc tính 'chạm' khi thay đổi
import {Directive, ElementRef, Input, forwardRef} from '@angular/core';
import {ControlValueAccessor, NG_VALUE_ACCESSOR} from "@angular/forms";
declare var $:any;
@Directive({
selector: '[date-picker]',
providers: [{
provide: NG_VALUE_ACCESSOR,useExisting:
forwardRef(() => DatePickerDirective),
multi: true
}]
})
export class DatePickerDirective implements ControlValueAccessor {
private value: string;
@Input('changeMonth') changeMonth:boolean = true;
@Input('changeYear') changeYear:boolean = true;
constructor(private el: ElementRef) {
}
ngAfterViewInit(){
$(this.el.nativeElement).datepicker({
changeMonth: this.changeMonth,
yearRange: "1:100",
changeYear: this.changeYear
}).on('change', e => this.onChange(e.target.value));
}
onChange: Function =() => {};
onTouched: Function =() => {};
writeValue(val: string) : void {
this.value = val;
}
registerOnChange(fn: Function): void {
this.onChange = fn;
}
registerOnTouched(fn: Function): void {
this.onTouched = fn;
}
}
gì đang xảy ra là ngay cả khi tôi chọn một ngày (chọn) hoặc gõ trực tiếp vào trường nhập, nó không được cập nhật "chạm" bất động sản.
Bạn có ý tưởng nào để sửa chữa không?
của nó đã thực hiện ở hai nơi ng2-bootstrap & ng-bootstrap, bạn sẽ nhớ để nhìn vào bản bootstrap của angular2, bạn có thể kiểm tra [ở đây] (https://ng-bootstrap.github.io/#/components/datepicker)? –
@PankajParkar Có! Trên thực tế tôi đã nhìn thấy nó trước và nó không phải là chính xác những gì tôi cần vì những lý do khác nhau. Tôi cần phải tùy chỉnh những thứ khác nhau. Bước đầu tiên (và thách thức) là bước mà tôi đã đề cập trước đây. –