输入类型date ng-model不允许使用日期数据



从服务器响应中,我想将日期映射到我的范围变量,该类型是'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正在混淆,因为您在$scopeng-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);
}

最新更新