无法以角度填充日期和时间详细信息

时间:2017-02-17 08:15:45

标签: angularjs

我有一个角度js应用程序,它使用spring-boot构建的服务器发送和接收对象。该对象使用Java8 LocalDateTime字段

发送和接收日期和时间信息的角度js部分如下所示。

   <div class="form-group">
        <label class="control-label" for="field_dtValidFrom">Dt Valid From</label>
            <div class="input-group">
                <input id="field_dtValidFrom" type="datetime" class="form-control" name="dtValidFrom" uib-datepicker-popup="{{'yyyy-MM-dd HH:mm'}}" ng-model="vm.package.dtValidFrom" is-open="vm.datePickerOpenStatus.dtValidFrom"
                />
                <span class="input-group-btn">
                    <button type="button" class="btn btn-default" ng-click="vm.openCalendar('dtValidFrom')"><i class="glyphicon glyphicon-calendar"></i></button>
                </span>
            </div>
        <uib-timepicker ng-model="vm.package.dtValidFrom" hour-step="1" minute-step="30" show-meridian="true"></uib-timepicker>
    </div>

发送日期时,我使用角度服务将其转换为所需格式

    function convertLocalDateToServer (date) {
        if (date) {
            return $filter('date')(date, 'yyyy-MM-dd HH:mm');
        } else {
            return null;
        }
    }

使用日期和时间信息将日期成功保存到数据库中。

但问题来自从服务器获取对象并在UI中显示相同的内容。那时,日期和时间字段都是空的。似乎我无法将来自服务器的日期时间对象转换为可由angularjs显示的正确格式。

在获取包详细信息时来自服务器的json在下面给出

{
    id: 1,
    dateOfBuying: "2017-02-17 12:08",
    isValid: true,
    dtValidFrom: "2017-02-17 00:00",
    dtValidTo: "2017-04-30 00:00",
    packageName: "Package 1",
    packageId: 1,
    personId: 1,
    valid: true
}

但angularjs日期和时间字段没有填充

1 个答案:

答案 0 :(得分:0)

从服务器获取数据后,您需要使用new Date()

进行转换

试试这个

vm.package = {
    id: 1,
    dateOfBuying: "2017-02-17 12:08",
    isValid: true,
    dtValidFrom: "2017-02-17 00:00",
    dtValidTo: "2017-04-30 00:00",
    packageName: "Package 1",
    packageId: 1,
    personId: 1,
    valid: true
}
//now change it
vm.package.dtValidFrom = new Date(vm.package.dtValidFrom);
vm.package.dtValidTo = new Date(vm.package.dtValidTo);