Angularjs: 封装layDate指令


【摘要】由于业务需要,将bootstrap-datetimepicker改成了layDate. layDate是一个较成熟且便于操作的jQuery日期插件,支持同一个视图内范围选择。封装成一个指令在多处调用。

.directive('defLaydate', function() {   return {     require: '?ngModel',     restrict: 'A',     scope: {       ngModel: '=',       },     link: function(scope, element, attr, ngModel) {       var _date = null,_config={};       // 初始化参数(具体参数可以查看API:http://www.layui.com/doc/modules/laydate.html)
      _config = {         lang: 'en',         elem: element[0],         btns:['confirm'],         format: !!attr.format ? attr.format : 'yyyy-MM-dd',         range: attr.range,         done: function(value, date, endDate) {           ngModel.$setViewValue(value);         }       };       !!attr.typeDate && (_config.type = attr.typeDate);       // 初始化
       _date = laydate.render(_config);       // 模型值同步到视图上
      ngModel.$render = function() {         element.val(ngModel.$viewValue || '');       };     }   } })

HTML:

<div class="form-group">
    <label>Time</label>
    <div class="input-group">
        <span class="input-group-addon"><i class="fa fa-calendar icon"></i></span>
        <input def-laydate range="~" class="form-control" type="text" ng-model="dateText"/>
    </div>
</div> 

 

结果如下:

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM