發展新世紀通過離子移動應用格式的輸入日期,我有這樣的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