2016-08-03 59 views
2

是否有可能注入新的簡寫形式進入角日期過濾器?向Angular日期過濾器添加新格式?

例如,我目前可以做到這一點:{{ myScope.timestamp | date: 'shortDate' }}

我想要做的是這樣的:{{ myScope.timestamp | date: 'paddedShortDate' }},這將強制使用前導0來填充單位數日期部分。

我知道我可以創建自己的過濾器來爲我—我,如果現有的過濾器以任何方式粗放更加好奇做到這一點。

+0

Whelp,進行了一些編輯並重新閱讀了幾件事情,但我找到了一種方法來做到這一點。 – FrankerZ

回答

2

查看源代碼here,DATE_FORMATS$locale中獲取。雖然我不建議編輯這些(作爲$locale.DATE_FORMATS是一個私人API,並可以在未來改變),你應該能夠通過運行塊做到這一點:

app.run(['$locale', function($locale) { 
    $locale.DATETIME_FORMATS.paddedShortDate = 'MM/dd/yy'; 
}]); 

正如你所說,你沒」我想創建另一個過濾器,但在我看來這將是更好的方法。一個簡單的過濾器應該可以正常工作:

var MY_DATETIME_FILTERS = { 
    'paddedShortDate': 'MM/dd/yy' 
}; 

app.filter('myFormat', ['$filter', function($filter) { 
    return function(format) { 
     return $filter('date')(input, MY_DATETIME_FILTERS[format] || format); 
    } 
}]); 
+0

小的修正來回答這個頁面的任何未來的訪客:'返回功能(輸入,格式){$回報過濾器(「日期」)(輸入,MY_DATETIME_FILTERS [格式] ||格式); }' – core

+0

我已經更新了我的答案@core – FrankerZ