Angular指令封装jQuery日期时间插件datetimepicker实现

00.混乱的前端界

上一篇我们讲到angular对于timepicker的一个封装后的插件,但是由于angular的版本必须是v1.2.30以上的。对于有些大型系统,一时升级angular的版本实在耗费时间。那么可以用这种方法来取值。

Angular1.x确实是个学习成本很高的框架,刚开始实习那会儿,前端啥也不懂,工头说用Angular,我们这群小弟也只能硬着头皮学。在这之前,前端的东西大部分都用的jQuery,而Angular正好是和jQuery的思维是相反的,开发过程中遇到了不少坑。而Angular团队也放弃了1.x开始开发和React神似的2.0版本,唉,真是沧海桑田啊。

页面上的时间格式是这样的:

01.Angular vs jQuery

男篮世界杯赌球 1

Angular模块化和解耦的思路确实值得一学,但是相对于成熟的jQuery插件库,Angular就显得寒酸了不少,比如,Angular-UI中日期控件是这样的:

文件引入

男篮世界杯赌球 2

'/bootstrap-datetimepicker.min.css',
'/bootstrap-datetimepicker.min.js',
'/bootstrap-datetimepicker.zh-CN.js',//中文包

丑的不要不要的,还不能选时间,相比之下jQuery就有很多优秀的控件了比如这样的:

html

男篮世界杯赌球 3

<div class="input-group date form_datetime" data-date-format="yyyy-mm-dd hh:ii:ss" data-link-field="dtp_input1" id="effStartDate"> //设置时间格式为 yyyy-mm-dd hh:ii:ss 。设置ID为 effStartDate
<input class="form-control" size="16" type="text" value="" readonly> 
    
      




</div>

此插件传送门:http://xdsoft.net/jqplugins/datetimepicker/

js:

男篮世界杯赌球,那么问题来了,控件一般是直接像这样$("#xx").val("xx")直接塞值进<input />标签的,这不会触发ng-change事件,ng-model也不会被更新,于是笔者写了个Angular适配指令,来实现这个控件的双向绑定,对于其他jQuery插件,也可以用类似的思路来进行适配。

 var dateFrom = $("#effStartDate input").val();//设置一个ID,取到bootstrap timepicker的值
 $scope.effStartDate=new Date(dateFrom.substring(0,19).replace(/-/g,'/')).getTime()/1000;//转化为时间戳

本文由美洲杯赌球发布于计算机教程,转载请注明出处:Angular指令封装jQuery日期时间插件datetimepicker实现

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。