角材(md-datepicker) - 如何在一页中设置不同的日期格式为不同的日期选择器
问题描述:
我正在使用角材(md-datepicker)。我的要求是根据选择设置不同的日期格式。即如果用户选择“每天”,日期选择器将显示“MM/DD/YYYY”。如果用户选择 '按月',那么日期选择器应该显示 'MMM YYYY' 和 '小时',它应该是 'MM/DD/YYYY HH:MM'角材(md-datepicker) - 如何在一页中设置不同的日期格式为不同的日期选择器
https://plnkr.co/edit/S4mnF7?p=preview
是否可行使用MD-日期选择器?我没有看到任何选项来设置HTML中的格式属性。查看$mdDateLocaleProvider
的文档。但它没有给出将不同格式设置为不同控件的选项。
答
您可以使用$mdDateLocaleProvider,formatDate函数来设置日期格式:将日期对象格式化为字符串的函数。如果指定了datepicker指令,它还提供时区。
而在datepicker指令中,您可以使用md-date-locale属性:这允许$ mdDateLocaleProvider的值基于每个元素过度写入(例如,msgOpenCalendar可以用md-date-locale =“{ msgOpenCalendar:'打开一个特殊的日历'}“)。
类似:
<md-datepicker ng-model="myDate" md-date-locale="mylocale"></md-datepicker>
<md-datepicker ng-model="myOtherDate" md-date-locale="myOtherlocale"></md-datepicker>
和控制器
$scope.mylocale = {
formatDate: function(date) {
var m = moment(date);
return m.isValid() ? m.format('YYYY') : '';
}
};
$scope.myOtherlocale = {
formatDate: function(date) {
var m = moment(date);
return m.isValid() ? m.format('MMMM YYYY') : '';
}
};
完美!这正是我期待的。谢谢你的答案 – CPatel