簡體   English   中英

在Angular-UI-Bootstrap Datepicker中顯示設置日期(日期=今天)的自定義字符串(“ Today”)。

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM