【发布时间】:2015-09-30 21:25:58
【问题描述】:
我有一个输入字段类型日期。 AngularJS 有日期选择器。当用户来编辑已经保存的表单时,AngularJS 会抛出一个错误并且根本没有设置日期,它在 UI 中是空的。非常感谢您的帮助!
HTML
<div class="col-md-10">
<input type="date" name="purchaseDate" class="form-control" ng-model="rma.purchaseDate" placeholder="{{translation.DATEOFPERMIT_PLACEHOLDER}}">
</div>
控制器
//In mySQL DB format is: 2015-07-02
$scope.rma.purchaseDate = $filter("date")(new Date(rma.purchaseDate).toISOString(), 'dd-MM-yyyy');
console.log($scope.rma.purchaseDate);
在 console.log 中
错误:[ngModel:datefmt] 预期
02-07-2015是一个日期指定的值“02-07-2015”不符合要求的格式“yyyy-MM-dd”。
在用户界面中
在 UI 中格式为 dd/mm/yyyy
更新
我刚刚关闭了过滤器并尝试了非常简单的方法,这很有效:
$scope.rma.purchaseDate = new Date(rma.purchaseDate);
谢谢大家!
【问题讨论】:
-
您使用的是哪个日期选择器?链接?
-
UI 上显示的格式是什么?哪个日期选择器?
-
据我所知,angular 1.3+ 的 type="date" 的 ngModel 需要 date 是真正的日期对象(angular 1.2 不是),而 HTML5 期望它为 String。所以你需要像 stackoverflow.com/questions/14474555/… 这样的 ngModel $formatters
-
@Sudhansu Choudhary - 就像我在我的问题中所说:在 UI 中,格式是 dd/mm/yyyy。我使用 AngularJS 默认的日期选择器,它只在 chrome 中工作。
-
@YOU - 感谢您的链接。有一条评论,我试过了,这很有效: $scope.rma.purchaseDate = new Date(rma.purchaseDate);
标签: javascript angularjs date filter