基于datepicker定义自己的angular时间组件的示例
基于datepicker定义自己的angular时间组件,分享给大家。
首先是引入相应的文件jquery和datepicker,如下
"styles":[ "styles.less", "./assets/lib/datetimepicker/datetimepicker.css" ], "scripts":[ "assets/lib/jquery/jquery.min.js", "./assets/lib/datetimepicker/datetimepicker.js", ],
然后是ts文件
import{Component,EventEmitter,OnInit,AfterViewInit,ElementRef,Input,Output}from'@angular/core'; import{ControlValueAccessor,NgControl}from'@angular/forms'; declarevar$:any; @Component({ selector:'my-datepicker', template:'' }) exportclassMyDatePickerComponentimplementsOnInit,AfterViewInit,ControlValueAccessor{ constructor( private_element:ElementRef, public_control:NgControl ){ if(this._control){ this._control.valueAccessor=this; } } @Input() name:string; @Input() disabled:string; @Input() options:Object={}; @Input('ngModel') value:string; @Output()onChoose=newEventEmitter(); defaults:Object; _onChange=(value:any)=>{}; writeValue(value:string){ if(value){ this.value=value; } } registerOnChange(fn:(value:any)=>void){ this._onChange=fn; } registerOnTouched(fn:any){ } ngOnInit(){ if(this.value==undefined){ this.value=''; } let_this=this; this.defaults={ format:'YYYY-MM-DD', isToday:true, choosefun:function(ele,data){ _this._choose(data); }, clearfun:function(){ _this._clear(); }, closefun:function(){ _this._close(); } }; } ngAfterViewInit(){ letoptions=$.extend({},this.defaults,this.options); $(this._element.nativeElement).find('input').jeDate(options) .on('click',function(e){ e.stopPropagation(); $(this).addClass('focus').blur(); }); } private_choose(value:string){ this._onChange(value); this.onChoose.emit(value);//选中事件 } private_clear(){ this._onChange(''); this.onChoose.emit('');//选中事件 } private_close(){ $(this._element.nativeElement).find('input').removeClass('focus'); } }
最后是调用,option里面定义自己的时间格式
总结:通过这个组件,我们只需要调用my-datepicker就可以在任意模块引入然后使用,减少代码的使用,方便维护
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。