2016-07-09 6 views
0

日付データをdd/MM/yyyy形式で取り込み、DateオブジェクトとしてAPIに送信する必要があります。それはdd/MM/yyyyにDateオブジェクトを示すで働くが、Dateオブジェクトにdd/MM/yyyy形式にデータを変換するために失敗している角度:「dd/MM/yyyy」の日付文字列を日付オブジェクトに変換する方法

angular.module('tmyapp').directive('formattedDate', function (dateFilter) { 
    return { 
     require: 'ngModel', 
     scope: { 
      format: "=" 
     }, 
     link: function (scope, element, attrs, ngModelController) { 
      ngModelController.$parsers.push(function (data) { 
       //convert data from view format to model format 
       return dateFilter(data, scope.format); //converted 
      }); 

      ngModelController.$formatters.push(function (data) { 
       //convert data from model format to view format 
       return dateFilter(data, scope.format); //converted 
      }); 
     } 
    } 
}); 
//use <input type="text" formatted-date format="'dd/MM/yyyy'" /> 

:私は、次のディレクティブを使用しています。

誰かが助けることができますか?

+0

パーサは、Dateオブジェクトを返すように日付を解析べきではないのですか? –

+0

右ですが、文字列dd/MM/yyyy形式のデータを日付メソッドに渡すだけでは機能しません。私はこれを行う方法を探しています。 – Kangkan

答えて

1

次のようなパーサで日付文字列を解析する必要があります。

angular.module('tmyapp').directive('formattedDate', function (dateFilter) { 
    return { 
     require: 'ngModel', 
     scope: { 
      format: "=" 
     }, 
     link: function (scope, element, attrs, ngModelController) { 
      ngModelController.$parsers.push(function (data) { 
       //convert data from view format to model format 
       dateArray = data.split("/"); 
       var date = new Date(dateArray[2] + "-" + dateArray[1] + "-" + dateArray[0]) 
       return date; //converted 
      }); 

      ngModelController.$formatters.push(function (data) { 
       //convert data from model format to view format 
       return dateFilter(data, scope.format); //converted 
      }); 
     } 
    } 
}); 
+0

これにより、この特定のフォーマットのディレクティブのみが動作します。他のフォーマットを使用する必要がある場合は、パーサを追加する必要があります。そうですか? – Kangkan

+1

フォーマットに基づいて好きなだけ条件付きにすることができます。 –

関連する問題