Angularjs 角度材质日期选择器date.toLocaleDateString不是函数
我试图使用“角度材质日期选择器”,但出现以下错误:Angularjs 角度材质日期选择器date.toLocaleDateString不是函数,angularjs,angular-material,Angularjs,Angular Material,我试图使用“角度材质日期选择器”,但出现以下错误: TypeError: date.toLocaleDateString is not a function at Object.defaultFormatDate [as formatDate] (angular-material.js:6860) at DatePickerCtrl.configureNgModel.ngModelCtrl.$render (angular-material.js:7184) at Object.<anon
TypeError: date.toLocaleDateString is not a function
at Object.defaultFormatDate [as formatDate] (angular-material.js:6860)
at DatePickerCtrl.configureNgModel.ngModelCtrl.$render (angular-material.js:7184)
at Object.<anonymous> (angular.js:25233)
at m.a.$get.m.$digest (angular.js:15707)
at m.a.$get.m.$apply (angular.js:15986)
at g (angular.js:10511)
at L (angular.js:10683)
at XMLHttpRequest.A.onload (angular.js:10624)
toLocaleDateString是日期对象的本机方法,因此您的md datepicker似乎未绑定到日期。如果没有填充数据的HTML和代码,很难确定,但这是最可能的原因。我遇到了这个错误,因为我试图将格式字符串值分配给与md datepicker绑定的模型,md datepicker是hold javascript日期类型 像这样
$scope.eventdate = $filter('date')($scope.eventdate, 'yyyy-MM-dd');
解决方案是为md datepicker声明新模型,并按如下方式获取其值
关于js
关于html
<md-datepicker ng-model="mddate" md-placeholder="Enter date" required></md-datepicker>
希望这能帮助你我也有同样的问题,但上面的答案没有帮助 用new Date()初始化datepicker是可行的,但是当尝试用服务器返回的值初始化时,我得到了上面的错误——尽管它们看起来是相同的格式 最后,我必须显式地创建一个日期对象,然后使用Parse设置它的值
var date = ctrl.data.fromServer;
ctrl.data.fromServer= new Date();
if (date != undefined)
{
ctrl.data.fromServer.setTime(Date.parse(date));
}
很可能您的
date
对象不是date
类型,请确保它只是该类型,而不是字符串或其他类型
这就是我为什么会遇到这个问题,以及我是如何解决它的。希望这能有所帮助。你是对的。我没有在控制器和作用域中将日期选择器的ng模型设置为有效的javascript日期。非常感谢。我将为此编辑我的问题,以便对其他人更有意义。是的,您的服务器返回文本。必须将文本显式转换为日期。
$scope.eventdate = $filter('date')($scope.mddate, 'yyyy-MM-dd');
<md-datepicker ng-model="mddate" md-placeholder="Enter date" required></md-datepicker>
var date = ctrl.data.fromServer;
ctrl.data.fromServer= new Date();
if (date != undefined)
{
ctrl.data.fromServer.setTime(Date.parse(date));
}