【发布时间】:2016-06-26 17:42:12
【问题描述】:
我有 RESTfull 服务,可以生成和使用 JSON 对象
{
firstName: "Alex",
lastName: "Ross",
studentGroup: {
groupId: 1,
groupName: "java 15-1"
},
admissionDate: "2015-03-25",
status: {
statusId: 3,
statusName: "expelled"
},
term: {
termId: 4,
termName: "fourth"
},
id: 1
}
这是 admissionDate 字段,它对应于 html 页面上的 type="date" 输入(用于更新对象的页面服务......因此它应该显示当前值并从日期选择器提交新值到RESTfull服务):
<input required type="date" ng-model="student.admissionDate">
因此,在表示当前值之前,我将其字符串值转换为日期:
$scope.student.admissionDate = new Date(student.admissionDate);
输入产生的日期类似于 - 'Fri Mar 11 2016 14:36:29 GMT+0200 (FLE Standard Time)'。 但服务无法识别此格式,应为“yyyy-MM-dd”格式。 为避免错误,我使用角度过滤器,如
student.admissionDate = $filter('date')($scope.student.admissionDate, "yyyy-MM-dd");
对象也可以发送到服务器(PUT: /student),但在 Chrome 开发者控制台中我可以观察到错误 - “[ngModel:datefmt]”,因为<input> 标记中的值格式已更改。
我该如何解决这个问题?应进行哪些更改以适应服务器格式 ('yyy-MM-dd') 和 <input type="date"> 中的角度验证
【问题讨论】:
-
plnkr.co/edit/bPReYzwR062iLPRnAz3x?p=preview 这是我的文件(但没有服务端...不知道如何在这里分享)
标签: javascript html angularjs json date