从服务器响应中,我想将日期映射到我的范围变量,该类型是'date'在角,因为我做同样的,我不能映射它,因为我得到以下错误
angular.js:12798 Error: [ngModel:datefmt] Expected `2016-09-22T18:30:00.000Z` to be a date
http://errors.angularjs.org/1.4.12/ngModel/datefmt?p0=2016-09-22T18%3A30%3A00.0
注意:我映射通过$ operingdetails。日期作为异常数组已经在ng-repeat
循环
请帮助我将不胜感激。
Html <div ng-repeat="operatingDetails in operatingDetails.exceptions" style="margin-top: 8px;">
<div class="DateField">
<input id="date2" type="date" ng-model="operatingDetails.date" style="" ng-change="customOPHchangeExpDateValid(operatingDetails.date, $parent.$parent.$index)"/>
</div>
</div>
Js(角)
$scope.opertingHours.date
服务器响应
{
"name" : "Custom Operation Hours1",
"exceptions" : [{
"date" : "2016-09-15T18:30:00.000Z",
"starttime" : "10:02AM",
"endtime" : "10:02PM",
"_id" : "57de44c54feb409c2e13ff40",
"$$hashKey" : "object:207"
}
],
"businesshour" : {
"sat" : {
"starttime" : "8:00AM",
"endtime" : "5:00PM"
},
"fri" : {
我猜你会得到这个错误,因为"date" ("date": "2016-09-15T18:30:00.000Z",)是一个字符串。因此将它从字符串转换为日期。
那么试试这个
<>之前scope.opertingHours美元。date = new date (exceptions[0].date);//将字符串转换为日期之前希望它对你有用。
您的operatingDetails正在混淆,因为您在$scope和ng-repeat中使用它,所以尝试使用下面的另一个
<div ng-repeat="oD in operatingDetails.exceptions" style="margin-top: 8px;">
<div class="DateField">
<input id="date2" type="date" ng-model="convertDate(oD.date)" style="" ng-change="customOPHchangeExpDateValid(oD.date, $parent.$parent.$index)"/>
</div>
</div>
还将以下函数添加到控制器
$scope.convertDate=function(inputDate){
return new Date(inputDate);
}