2017-03-15 11 views
0

別のフィルターで作成した形式で日付フィルターを使用する必要があります。 dateフィルタとangular-translateフィルタを組み合わせようとしています。私が持っているでしょう、ハードコード形式で別のフィルターで引数を渡して角度フィルターを適用する

:私は必要なもの

{{foo | date:'yyyy-MM-dd'}} 

は、別のフィルタによって日付フォーマットを取得することです。

{{foo | date:$filter('translate')('global.dateFormatNoTime')}}

または最終的にこの:

{{foo | date:('yyyy-MM-dd' | dateFormat)}}

'yyyy-MM-dd'dateFormatフィルタは何も返さない場合は、デフォルトのフォーマットであること、このような

何か。

今はコントローラで2番目のフィルタが適用されたスコープ変数を使用してこれを行います。

{{foo | date:dateFormat}} 

しかし、別のスコープ変数を使用しないビューでこれを直接行うことができますか?

+0

try、 '{{foo | date:filter:translate: 'global.dateFormatNoTime'}} 'フィルタ引数を使用します。 – Sravan

+0

@Sravanこれは第2のフィルタの引数 'global.dateFormatNoTime'を得ていないようです。 – neptune

答えて

1
.filter('myCustomerFilter', function ($filter) { 
    return function (date) { 
     var dateFormat = $filter('translate')('global.dateFormatNoTime'); 
     return $filter('date')(date, dateFormat); 
    } 
}); 

このカスタムフィルタは、ビューで使用できます。

{{foo | myCustomerFilter}} 

それとも、あなたのフィルタに変換パラメータを渡したい場合は、以下のようなカスタムフィルタを定義

.filter('myCustomerFilter', function ($filter) { 
    return function (input, date, translateOption) { 
     var dateFormat = $filter('translate')(translateOption); 
     return $filter('date')(dateFormat); 
    } 
}); 

そして、あなたのビューでカスタムフィルタに変換パラメータを渡すことができ。

{{foo | myCustomerFilter : 'global.dateFormatNoTime'}} 
+1

これは正常ですが、2番目の例でもdateパラメータを追加する必要があります。 – neptune

+0

@neptuneそれはそこで働いています。 –

関連する問題