从服务器响应中,我想将日期映射到我的范围变量,其类型为' 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
注意:我已经在ng-repeat
循环中将$ operatingDetails.date作为例外数组进行映射
任何帮助,请不胜感激......
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" : {
答案 0 :(得分:2)
我猜你得到这个错误,因为“date”(“date”:“2016-09-15T18:30:00.000Z”,)是一个字符串。所以将它从字符串转换为日期。
所以试试这个,
$scope.opertingHours.date = new Date(exceptions[0].date); //Converting string to date
希望,它会为你工作。
答案 1 :(得分:0)
你的 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);
}