即使从中选择另一个日期,JQueryUI DatePicker也始终将今天的日期显示为已选中

时间:2017-11-29 10:25:44

标签: jquery angularjs jquery-ui datepicker

我一起使用AngularJS和JQuery UI DatePicker,以便允许用户选择一个日期,我在同一页面上有两个日期。

我有一个自定义指令,用于处理jQuery和AngularJS之间的接口:

.directive('mydatepicker', function ($parse) {
        return {
            restrict: 'A',
            require: 'ngModel',
            link: function (scope, element, attrs, ctrl) {
                var ngModel = $parse(attrs.ngModel);
                $(function () {
                    element.datepicker({
                        showOn: "both",
                        changeYear: true,
                        changeMonth: true,
                        dateFormat: 'dd/mm/yy',
                        onSelect: function (date, inst) {
                            scope.$apply(function (scope) {
                                ngModel.assign(scope, date);
                            });
                        }
                    });
                });
            }
        };
    })

我的HTML看起来像这样:

<input type="text" ng-model="mjaController.tempFiltering.fromDate" mydatepicker />
<input type="text" ng-model="mjaController.tempFiltering.toDate" mydatepicker />

为了证明ngModel的价值,我还直接打印了这个值:

<pre>{{mjaController.tempFiltering.fromDate}}</pre>
<pre>{{mjaController.tempFiltering.toDate}}</pre>

然而,ngModel中的值是什么,或者我直接从datepicker中选择的日期并不重要:datepicker 始终显示今天的日期为选中 - 但是ngModel是已更新至所选日期

Datepicker always shows today as selected

datepicker作为标准jQuery工作正常,但是一旦我将它绑定到AngularJS指令,它似乎就会破坏它。

请注意,我几乎完全从here复制代码(跳过maxDate和dateRange选项),但它不起作用,但它在该示例中效果很好。

0 个答案:

没有答案