[英]Display the custom string (“Today”) on set date (date=today), in the Angular-UI-Bootstrap Datepicker?
我正在將Angular-UI datepicker實現為指令,並且試圖使其將今天的日期顯示為字符串'Today',而不是2015/04/27。
這可能嗎? 我可以輕松地將$scope.dt
更改$scope.dt
"Today"
但是如果要將其保存到數據庫中,則需要將其轉換回原來的狀態,這很麻煩。 它看起來像是一種自定義格式...。但是我從這里的代碼中看不到該怎么做?
您可以編寫一個過濾器,該過濾器將包裝AngularJS提供的原始date
過濾器並接受自定義格式,如果格式是默認格式或通過日期不是今天,則將格式轉發到date
。 這是一個草圖:
.filter('my_date', ['dateFilter', function (dateFilter) {
function filter(date, format, timezone) {
var today = new Date();
if (!(date instanceof Date)) {
date = new Date(date);
}
if (format == "today") {
if (date.getFullYear() == today.getFullYear() && date.getMonth() == today.getMonth() && date.getDate() == date.getDate()) {
return "Today";
} else {
format = "yyyy/mm/dd"; // this is default
}
}
return dateFilter(date, format, timezone);
}
return filter;
}])
使用方法:
{{dt | my_date:'today'}}
這里還有一個改進的余地:您可以查看更專用的過程,以將迄今為止在AngularJS源中傳遞給過濾器的任何內容轉換為日期(特別是接受JSON); 默認格式可以參數化。
注意 。 如果您准備自己使用日期來呈現輸入內容(即當您可以選擇要使用的過濾器時),則概述的技術將起作用。 它不適用於來自AngularUI的即用型datepicker datepicker-popup
popup-它使用內置的date
過濾器,並且除了修改AngularUI的源代碼外,似乎沒有其他方法可以覆蓋它。 如果需要彈出窗口,則必須自己添加“彈出邏輯”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.