[英]Convert string to date on render of md-datepicker
我從API返回了很多資源,這些資源要求將日期字符串轉換為Date對象,以便可以通過md-datepicker(角度材料)呈現它們。
剛開始,我只是在每個服務中執行此操作(實際上,我從每個服務中調用了另一個服務,將字符串轉換為日期),但這變得很難維護。
因此,我試圖通過擴展md-datepicker指令來實現此目的,但是我不知道如何修改該值-每種用法都有一個不同的父控制器。
這是我得到的: app.js
.directive('customDatePicker', function(DatesService) {
return {
restrict: 'A',
require: 'mdDatepicker',
scope: {
date: '='
},
link: function(scope, element, attrs, controller, transcludeFn) {
// access value in scope here
console.log(scope);
}
}
})
edit-task.html
<md-datepicker custom-date-picker date="TaskDetailCtrl.task.start_date" ng-model="TaskDetailCtrl.task.start_date">
</md-datepicker>
我認為通過使用隔離作用域,我可以更輕松地獲取值-使用哪個控制器都沒有關系(沒有作用域選項,我可以看到該值,但必須知道控制器的名稱)。
不幸的是, 我遇到了多個指令資源爭用錯誤。
有更好的解決方案嗎?
只需通過attr指令添加格式化程序
.directive('myDate', function(){
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, iElem, iAttrs, ngModelCtrl){
ngModelCtrl.$formatters.unshift(function(modelValue){
return modelValue && new Date(modelValue);
});
}
};
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.