wdatepicker是一个非常好用的时间控件,可以选择年月日以及时分秒,特别方便,但是在angular js 中使用的时候也比较麻烦,现在将遇到的一些问题总结下:
从网上档了一个wdatepicker的包,但是这个包不能破坏原有的结构。
1.在封装的directive控件中使用的时候,总是报错,找不到Wdatepicker.js等一些引用文件:
解决办法:修改下Wdatepicker.js中的一个参数$dpPath:"./datepicker/" 然后就可以啦。
2.ng-model="sTime" 失效,选择完时间,总是获取不到选择的时间。
解决办法:
(1)在使用WdatePicker的地方,加上 onChange = "" 。如下:
<input id="d5421" class="form-control " οnclick="WdatePicker({el:'d5421',readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})" size="16" type="text" ng-model="startDate" onChange="" required ui-validate="'$value<=endDate'" ui-validate-watch="'endDate' " style="background-color:white;"/>
(2)但是如果页面被压缩,onChange = "" 就不存在了,数据绑定又会失效。这时可以在初始化WdatePicker中加入onpicked: function(){$(this).trigger('change')},意思是选择值发生变化的时候,选择元素触发change事件。如下:
<input id="d5421" class="form-control " οnclick="WdatePicker({onpicked: function(){$(this).trigger('change')},el:'d5421',readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})" size="16" type="text" ng-model="startDate" required ui-validate="'$value<=endDate'" ui-validate-watch="'endDate' " style="background-color:white;"/>
备注:
关于wdatepicker的一些属性、事件可以参考其资料:
http://www.my97.net/dp/demo/resource/2.1.asp