发展新世纪通过离子移动应用格式的输入日期,我有这样的HTML:如何使用角1.3和进一步
<input type="date" ng-model="schedule.start"
name="startDate"
date-to-format />
我有这样的指令,旨在对输入内格式呈现的日期标签:
.directive('dateToFormat', function ($filter) {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, el, attrs, ctrl) {
ctrl.$parsers.push(function (data) {
return data;
});
ctrl.$formatters.push(function (data) {
return $filter('date')(data, 'EEE dd MMMM yyyy');
// error => filter returns a string, not a date object
});
}
};
});
但是,自从Angular 1.3以来,格式化程序必须返回一个Date
对象而不是字符串等价物。使用
典型的错误这个指令:
Expected `mon. 07 september 2015` to be a date.
如何使用角1.3和进一步格式的日期?
如果我包裹$filter
围绕new Date(...)
,我失去了自定义格式...
Plunkr再现问题:http://plnkr.co/edit/eMIHWjtwHSPLxBBYxYu9?p=preview
您的格式化程序将日期值转换为字符串,那么您的解析器呢?是否需要做相反的工作(将字符串转换为日期值)? – Rustam
解析器已经将相应的Date对象返回给我。 – Mik378
您不能可靠地更改输入类型日期的格式。浏览器将在该字段中呈现区域设置的格式化日期。所以你的指示在这种情况下是无用的。 – dfsq