DateTimePicker只需打开日历即可清除日期

时间:2019-06-19 13:46:34

标签: angularjs ui.bootstrap

当我单击datetimepicker按钮时,它将清除日期。

'use strict';

app.directive('defaultDate', function () {
    return {
        restrict: 'E',
        templateUrl: 'app/directives/default-date.html',
        scope: {
            onChange: '&',
            obj: '='
        },
        controller: function ($scope) {
            $scope.alterou = function () {
                $scope.onChange()
            }

            $scope.openCalendar = function (e) {
                e.preventDefault()
                e.stopPropagation()
                $scope.obj = { isOpen: true };
            };
        }
    }
})

<p class="input-group">
  <input type="text" class="form-control" ng-change='alterou()' datetime-picker="dd/MM/yyyy HH:mm" ng-model="obj.date" is-open="obj.isOpen" />
  <span class="input-group-btn">
    <button type="button" class="btn btn-default" ng-click="openCalendar($event, prop)"><i class="fa fa-calendar"></i></button>
  </span>
</p>

我希望日历不会仅通过打开日期来清除日期。

1 个答案:

答案 0 :(得分:0)

问题是您的$scope.openCalendar函数中的这一行:

$scope.obj = { isOpen: true };

您正在将$scope.obj设置为具有单个属性isOpen的对象。您应该在这里做的是:

$scope.obj.isOpen = true;

这样,将保留$scope.obj.date的值。