2

当我单击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>

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

4

1 回答 1

0

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

$scope.obj = { isOpen: true };

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

$scope.obj.isOpen = true;

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

于 2019-06-19T13:53:34.330 回答