是否可以在angularjs中的过滤器定义中注入$ filter?

时间:2014-05-19 20:20:58

标签: angularjs

当我尝试调用currency_br过滤器中的现有过滤器(如货币过滤器)时,我收到注入错误。我如何在自定义过滤器定义中注入$ filter?提前谢谢。

angular.module('ng').filter('currency_br', 

function () {

    return function (n) {

        var us_currency = $filter('currency')(n);
        return us_currency.toString().replace('.','@').replace(',','.').replace('@',',');

    };


});

2 个答案:

答案 0 :(得分:4)

是的,这是可能的......只需像控制器或其他任何东西那样注入$ filter。

angular.module('ng').filter('currency_br', function ($filter) {
    return function (n) {
        var us_currency = $filter('currency')(n);
        return us_currency.toString().replace('.','@').replace(',','.').replace('@',',');
    };
});

Fiddle

答案 1 :(得分:2)

您可以尝试这样的事情:

app.filter('reverse', function(){
    return function (input) {
        return input.split('').reverse().join('');
    }
});

app.filter('upperCaseReverse', function($filter){
    return function(input){
        return $filter('reverse')(input).toUpperCase(); // Get previously defined filter
    }
});

这是一个基本的plnk