2015-07-12 51 views
1

我有一个输入字段类型的日期。 AngularJS有日期选择器。当用户编辑已经保存的表单时,AngularJS会抛出一个错误,并且根本没有设置日期,它在UI中是空的。我非常感谢您的帮助!AngularJS:如何自动选择日期

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

Error: [ngModel:datefmt] Expected 02-07-2015 to be a date

The specified value '02-07-2015' does not conform to the required format, 'yyyy-MM-dd'.

在UI

在UI格式为DD/MM/YYYY

UPDATE

我只是把过滤掉,并试图很简单的办法,这是工作:

$scope.rma.purchaseDate = new Date(rma.purchaseDate); 

谢谢大家!

+0

你正在使用哪个datepicker?链接? –

+0

什么是在UI上显示的格式?日期选择器? –

+1

据我所知,角度1.3 +的ngModel与类型=“日期”需要日期为真正的日期对象(角1.2不是)和HTML5期望它作为字符串。所以你需要ngModel $ formatters像http://stackoverflow.com/questions/14474555/how-to-format-a-date-using-ng-model – YOU

回答

0

您需要提供一个有效的JavaScript对象数据输入的ng-model

这里是DOC

它说,

The model must always be a Date object, otherwise Angular will throw an error. Invalid Date objects (dates whose getTime() is NaN) will be rendered as an empty string.

这样做,你可以创建一个javascriptdate像,

//In mySQL DB format is: 2015-07-02 
var dateVal = '2015-07-02'; 
var datePartials = dateVal.split("-"); 
var dateModel = new Date(datePartials[0], datePartials[1] - 1, datePartials[2]); 

$scope.rma.purchaseDate = dateModel; 

这里是一个DEMO

相关问题