一尘不染

错误:[ngModel:datefmt]预期`2015-05-29T19:06:16.693209Z`为日期-Angular

angularjs

我正在angular申请与Djangorest-framework..

该应用程序从服务器接收带有json的信息。键之一是created_time…此字段的值是format
iso-8601,例如2015-05-29T19:06:16.693209Z

在客户端中,我有一个字段:

<input type="time" ng-model="created_time">

但是,当数据到达时,我得到这个错误:

Error: [ngModel:datefmt] Expected `2015-05-29T19:06:16.693209Z` to be a date http://errors.angularjs.org/1.3.13/ngModel/datefmt?p0=2015-05-29T19%3A06%3A16.693209Z
at REGEX_STRING_REGEXP (angular.js:63)
at Array.<anonymous> (angular.js:19807)
at Object.ngModelWatch (angular.js:23289)
at Scope.$get.Scope.$digest (angular.js:14235)
at Scope.$get.Scope.$apply (angular.js:14506)
at done (angular.js:9659)
at completeRequest (angular.js:9849)
at XMLHttpRequest.requestLoaded (angular.js:9790)

我已经尝试了一切:(格式完全与angular文档中的说明…


阅读 182

收藏
2020-07-04

共1个答案

一尘不染

角度1.3+必须发生这种情况。用于日期/时间输入的ng模型的1.3+版本必须是有效的日期对象,不再允许使用日期的字符串表示形式。您需要将字符串转换为日期对象($scope.created_time = new Date(dateString))并将其绑定到ng-
model。如果您点击错误链接,它将获得有关错误及其解决方法的清晰说明。

所有与日期相关的输入(例如)都要求模型成为Date对象。如果模型是其他模型,则会引发此错误。在这种情况下,Angular不会在上设置验证错误,因为这些错误会显示给用户,但是错误状态是由错误的应用程序逻辑而非用户引起的。

2020-07-04