【问题标题】:Angular JS directive with JQuery Datepicker带有 JQuery Datepicker 的 Angular JS 指令
【发布时间】:2015-09-22 17:20:42
【问题描述】:

我对 Angular js 完全陌生。但是我设法在我的 Angular JS 项目中集成了一个 jQuery UI 日期选择器。 但现在我想将 jQuery datepicker 选择的日期格式化为我无法做到的 ISO 日期格式。 这是我的代码。

HTML

<input type="text" ng-model="event.when.start" datetime-picker>

角度控制器

myApp.directive('datetimePicker', function() {
   return {
        require : 'ngModel',
        link : function (scope, element, attrs, ngModel) {
            $(function(){
                element.datetimepicker({
                    dateFormat:'yy-mm-dd',
                    minDate: 0,
                    yearRange: '1920:2012',
                    minute: 0,
                    stepMinute: 15,
                    onSelect:function (dateText, inst) {
                        var dt = new Date(dateText);
                        alert(dt.toISOString());
                        ngModel.$setViewValue(dt.toISOString());
                        scope.$apply();
                    }
                });
            });
        }
    }
});

屏幕截图

注意*:不过我可以提醒该值。

【问题讨论】:

标签: angularjs date datepicker format iso


【解决方案1】:

简单如下

myapp.controller('myctrl',function myctrl ($scope){
    $scope.event = {when : {start : ''}}
    $scope.event.when.start = new Date();
}).

    myApp.directive('datetimePicker', function() {
       return {
            require : 'ngModel',
            link : function (scope, element, attrs, ngModel) {
                $(function(){
                    element.datetimepicker({
                        minDate: 0,
                        yearRange: '1920:2012',
                        minute: 0,
                        stepMinute: 15,
                        onSelect:function (dateText, inst) {

                            scope.$apply(function(){
                               scope.event.when.start = new Date(dateText);
                            });
                        }
                    });
                });
            }
        }
    });

如果需要 ISO 日期,请不要使用 dateFormat:'yy-mm-dd',

【讨论】:

  • 感谢@bews99 的回答。有用! :) 但为此我需要在日期选择器上单击两次。当我专注于该输入字段时,是否可以格式化日期。
  • 我在上面编辑了我的评论。正如我所说,它正在工作,但我需要在 datepicker 的日期上单击两次才能使其工作。
  • 我的项目需要很多其他的 js 和 css。我无法把它放在 jsfiddle 中。还有其他方法吗?
  • 更新 answer.check 将您的代码包装在范围内。$apply
  • 仍然不能按要求工作@bews99 :( 实际上,当我专注于输入字段时,日期选择器会自动用默认的现在时间填充该字段。我希望它用 ISO 格式的日期时间填充. 你能帮我解决这个问题吗?非常感谢你的帮助。
猜你喜欢
  • 2017-07-15
  • 1970-01-01
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2016-06-24
相关资源
最近更新 更多