具有条件的AngularJS日期过滤器

ros*_*lze 2 angularjs angular-filters

我使用ng-bind和日期过滤器来输出日期的时间.

<span ng-bind="ctrl.model.myDate | date:'HH:mm'"><span>
Run Code Online (Sandbox Code Playgroud)

现在我希望能够使用此过滤器在12和24h格式之间切换输出:日期:'HH:mm'和日期:'hh:mm'

因此我有一个属性:

model.is24h= true
Run Code Online (Sandbox Code Playgroud)

如何在ng-bind表达式中插入条件以评估我的属性以12h或24h格式输出?

就像是:

<span ng-bind="ctrl.model.myDate | {{ctrl.model.is24h: date:'HH:mm' || date:'hh:mm'}}"><span>
Run Code Online (Sandbox Code Playgroud)

Ed *_*les 7

只需添加一个带有变量的新过滤器作为参数

http://jsfiddle.net/HB7LU/13224/

HTML

<span ng-bind="myDate | newDate:is24h"></span>
<button type="button" ng-click="is24h = !is24h">Swap</button>
Run Code Online (Sandbox Code Playgroud)

JS

myApp.filter('newDate', function ($filter) {
    return function (input, arg) {
        var hFormat = arg ? 'HH' : 'hh';
        return $filter('date')(new Date(input), hFormat  + '.mm');
    };
});
Run Code Online (Sandbox Code Playgroud)