我有一个角度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日期和时间字段没有填充
答案 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);