我有一个带有datePicker的输入类型文本。
<input id="start-date" style="width: 230px;" close-text="Close"
type="text" ng-model="startDate" datepicker-popup="dd-MM-yyyy"
ng-required="true"/></div>
当显示输入时,我必须显示它的初始值。问题是该值以这种格式显示:
Wed Jun 15 2016 10:48:49 GMT+0000 (WET)
在从datePicker中选择一个日期后,我可以看到我想要的格式(dd-MM-yyyy)。为了解决这个问题,我补充道:
$scope.$watch('startDate', function (newValue) {
$scope.startDate = $filter('date')(newValue, 'dd-MM-yyyy');
});
但是我收到了这个错误:Datepicker指令:&#34; ng-model&#34; value必须是Date对象,自01.01.1970以来的毫秒数或表示RFC2822或ISO 8601日期的字符串。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
假设您正在使用AngularUI日期选择器并且ng-Model的初始值没有被格式化,只需将以下指令添加到您的项目中就可以解决问题:
directive('datepickerPopup', function (){
return {
restrict: 'EAC',
require: 'ngModel',
link: function(scope, element, attr, controller) {
//remove the default formatter from the input directive to prevent conflict
controller.$formatters.shift();
}
}
})