0

在我的应用程序中,我使用 bootstrap-ui-datetime-picker。我有两种情况,第一种是我第一次来并选择新的日期。在日期输入字段和日历中,我选择了今天的日期,这是正确且可以的。

在第二种情况下,当我从我的 API 日期数据中获取时,输入字段为空,但在日历中,我看到了正确的选定日期。

问题是,我需要在输入字段和日历弹出窗口中获取选定的日期,就像在第一种情况下一样。

这是我的代码...

<input type="text" ng-disabled="true" readonly="true" class="form-control" datetime-picker="MMM d, y" ng-model="ctrl.picker4.date"
                                            is-open="ctrl.picker4.open" enable-time="false" button-bar="ctrl.buttonBar" datepicker-options="ctrl.picker4.datepickerOptions"
                                        />

这是我从 API 获取日期并将其设置为ng-model. 从 API 我得到这样的格式(字符串)

 data.from:"2018-09-24"

使用 momentjs 我格式化日期并设置为 ng-model

$scope.ctrl.picker4.date = moment(data.from).format("YYYY-MM-DD");
4

1 回答 1

0

问题在于日期格式。我用过滤器解决了这个问题

.directive('dateFormatter', [
 function () {
  return {
      restrict: 'A',
      require: 'ngModel',
      link: function postLink(scope, element, attrs, ngModel) {
        ngModel.$parsers.push(function(data) {
          return moment(data).format('YYYY-MM-DD');
        });

        ngModel.$formatters.push(function(data) {
          return moment(data, 'YYYY-MM-DD').toDate()
        });
      }
  };

} ]);

于 2018-09-26T12:27:32.410 回答