簡體   English   中英

在渲染md-datepicker時將字符串轉換為日期

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

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