【问题标题】:jquery datepicker on angular with 2 different formats带有2种不同格式的角度上的jquery datepicker
【发布时间】:2017-02-06 10:11:16
【问题描述】:

我在angular 应用上有一个jquery ui datepicker

它是这样定义的:

app.directive('dwdatepicker', function() {
    return {
        restrict: 'A',
        require : 'ngModel',
        link : function (scope, element, attrs, ngModelCtrl) {
            $(function(){
                element.datepicker({
                    onSelect:function (date) {
                        scope.$apply(function () {
                            ngModelCtrl.$setViewValue(date);
                        });
                    },
                    dateFormat: 'dd/mm/yy',
                    changeYear: true,
                    yearRange: "-50:+0"
                });
            });
        }
    }
});

现在我想以 yyyy-MM-dd 格式将值存储在 $modelValue 中,并以 dd/mm/yy 格式向用户显示该值.

我该怎么做?

jquery ui datepicker的功能如何与angular的功能结合起来?

谢谢。

【问题讨论】:

    标签: jquery angularjs jquery-ui-datepicker date-format


    【解决方案1】:

    onSelect 函数中,您可以执行以下任一操作:

    onSelect:function (date) {
       scope.$apply(function () {
          var isoDate = $.datepicker.formatDate('yy-mm-dd', $.datepicker.parseDate('dd/mm/yy', date));
          ngModelCtrl.$setViewValue(isoDate);
       });
    }
    

    或者

    onSelect:function (date, ) {
       scope.$apply(function () {
          var isoDate = $.datepicker.formatDate('yy-mm-dd',$(this).datepicker('getDate'));
          ngModelCtrl.$setViewValue(isoDate);
       });
    }
    

    好久没用过jQuery了,可能语法有问题。

    【讨论】:

    • 我以为方法$setViewValue更新$viewValue(不是$modelValue),不是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 2012-02-13
    • 2014-08-28
    相关资源
    最近更新 更多