我需要使用其他过滤器创建的格式的日期过滤器。尝试将date
过滤器与angular-translate
过滤器结合使用。
使用硬编码格式我会:
{{foo | date:'yyyy-MM-dd'}}
我需要的是通过另一个过滤器获取日期格式。
这样的事情:
{{foo | date:$filter('translate')('global.dateFormatNoTime')}}
或最终:
{{foo | date:('yyyy-MM-dd' | dateFormat)}}
'yyyy-MM-dd'
过滤器未返回任何内容,则 dateFormat
为默认格式。
现在我使用范围变量执行此操作,并在控制器中对其应用第二个过滤器。
{{foo | date:dateFormat}}
但想知道是否可以在没有其他范围变量的情况下直接在视图中完成。
答案 0 :(得分:1)
.filter('myCustomerFilter', function ($filter) {
return function (date) {
var dateFormat = $filter('translate')('global.dateFormatNoTime');
return $filter('date')(date, dateFormat);
}
});
您可以在视图中使用此自定义过滤器。
{{foo | myCustomerFilter}}
或者,如果您想将translate参数传递到过滤器,您可以定义自定义过滤器,如下所示
.filter('myCustomerFilter', function ($filter) {
return function (input, date, translateOption) {
var dateFormat = $filter('translate')(translateOption);
return $filter('date')(dateFormat);
}
});
在您的视图中,您可以将translate参数传递到自定义过滤器中。
{{foo | myCustomerFilter : 'global.dateFormatNoTime'}}