Angular Material DatePicker date.toLocaleDateString 不是函数
Angular Material DatePicker date.toLocaleDateString is not a function
我正在尝试使用 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.<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)
我已经从这里的代码笔中获取了示例:
https://material.angularjs.org/latest/#/demo/material.components.input
相关HTML代码:
<div layout="" layout-sm="column">
<md-input-container style="width:70%">
<label>Company (Disabled)</label>
<input ng-model="user.company" disabled="">
</md-input-container>
<md-datepicker ng-model="date" md-placeholder="Enter date"></md-datepicker>
</div>
我的控制器
$scope.date={};
$scope.$watch('date', function () {
console.log($scope.date);
});
toLocaleDateString 是日期对象的本机方法,因此您的 md-datepicker 似乎未绑定到日期。没有 HTML 和填充数据的代码,很难确定,但这是最可能的原因。
我遇到了这个错误,因为我试图将格式字符串值分配给与 md-datepicker 绑定的模型,该模型保持 javascript 日期类型
像这样
$scope.eventdate = $filter('date')($scope.eventdate, 'yyyy-MM-dd');
解决方案是为 md-datepicker 声明新模型并像这样获取它的值
关于 js
$scope.eventdate = $filter('date')($scope.mddate, 'yyyy-MM-dd');
于 html
<md-datepicker ng-model="mddate" md-placeholder="Enter date" required></md-datepicker>
希望对您有所帮助
我遇到了完全相同的问题,但上面的答案没有帮助。
使用 new Date() 初始化日期选择器有效,但是当尝试使用从服务器返回的值进行初始化时,我得到了上面的错误 - 尽管它们看起来是相同的格式。
最后我不得不显式创建一个 Date 对象,然后使用 Parse 设置它的值。
var date = ctrl.data.fromServer;
ctrl.data.fromServer= new Date();
if (date != undefined)
{
ctrl.data.fromServer.setTime(Date.parse(date));
}
您的 date
对象很可能不是 Date
类型,请确保它只是那种类型,而不是 string
或其他类型。
这就是我遇到这个问题的原因,以及我是如何解决它的。希望这有帮助。
我正在尝试使用 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.<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)
我已经从这里的代码笔中获取了示例: https://material.angularjs.org/latest/#/demo/material.components.input
相关HTML代码:
<div layout="" layout-sm="column">
<md-input-container style="width:70%">
<label>Company (Disabled)</label>
<input ng-model="user.company" disabled="">
</md-input-container>
<md-datepicker ng-model="date" md-placeholder="Enter date"></md-datepicker>
</div>
我的控制器
$scope.date={};
$scope.$watch('date', function () {
console.log($scope.date);
});
toLocaleDateString 是日期对象的本机方法,因此您的 md-datepicker 似乎未绑定到日期。没有 HTML 和填充数据的代码,很难确定,但这是最可能的原因。
我遇到了这个错误,因为我试图将格式字符串值分配给与 md-datepicker 绑定的模型,该模型保持 javascript 日期类型 像这样
$scope.eventdate = $filter('date')($scope.eventdate, 'yyyy-MM-dd');
解决方案是为 md-datepicker 声明新模型并像这样获取它的值
关于 js
$scope.eventdate = $filter('date')($scope.mddate, 'yyyy-MM-dd');
于 html
<md-datepicker ng-model="mddate" md-placeholder="Enter date" required></md-datepicker>
希望对您有所帮助
我遇到了完全相同的问题,但上面的答案没有帮助。
使用 new Date() 初始化日期选择器有效,但是当尝试使用从服务器返回的值进行初始化时,我得到了上面的错误 - 尽管它们看起来是相同的格式。
最后我不得不显式创建一个 Date 对象,然后使用 Parse 设置它的值。
var date = ctrl.data.fromServer;
ctrl.data.fromServer= new Date();
if (date != undefined)
{
ctrl.data.fromServer.setTime(Date.parse(date));
}
您的 date
对象很可能不是 Date
类型,请确保它只是那种类型,而不是 string
或其他类型。
这就是我遇到这个问题的原因,以及我是如何解决它的。希望这有帮助。