日期问题uib-datepicker和$ filter Angular JS

时间:2017-02-17 10:09:27

标签: angularjs datepicker angular-ui-bootstrap angularjs-filter

我正在处理日期格式的问题: 在我的公式中,我使用uib-datepicker-popup来获取日历,在控制器中我需要格式化这个日期,所以我使用的是$filter('date')

所以这是输入字段:

<div class="input-group">
    <input id="fechasolicitudc" type="text" class="form-control"
        ng-class="(form.fechasolicitudc.$invalid) && (submitted) ? 'error': '' "
        ng-style="(form.fechasolicitudc.$invalid) && (submitted) && {'background-color':'pink'}"
        name="fechasolicitudc" uib-datepicker-popup="dd/MM/yyyy"
        ng-model="vm.peticion.contacto.fechaSol" 
        is-open="vm.datePickerOpenStatus.fechasolicitudc"/>
    <span class="input-group-btn">
        <button type="button" class="btn btn-default"
            ng-click="vm.openCalendar('fechasolicitudc')">
            <i class="glyphicon glyphicon-calendar"></i>
        </button>
    </span>
</div>

并在我的控制器中:

if (vm.peticion.contacto.fechaSol != null) {
    var d = $filter('date')(vm.peticion.contacto.fechaSol, 'yyyy-MM-dd');
    vm.peticion.contacto.fechaSol = d;
}

发生的事情是日期在数据库中更新,但字段将被删除。 当我尝试输入输入type="date"时,该字段不会被删除,但日历弹出窗口不起作用。

1 个答案:

答案 0 :(得分:1)

在你的标记中:

//...
uib-datepicker-popup="{{dateFormat}}" ng-model="vd"
datepicker-options="vdOptions"
// ... 

在您的控制器中:

$scope.dateFormat = 'dd MMM yyyy';  // or your custom date

// and if you want to have your date set as today
$scope.vd = new Date();
$scope.vdOptions = {
      formatYear: 'yy',
      formatMonth: 'MM',
      maxDate: new Date(),
      minDate: minDate,
      startingDay: 1,
      showWeeks: false,
      yearRows: 2,
      yearColumns: 2
};

vd = valueDate

在这种情况下,我没有看到使用$filter的重点。